|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- ini_set('date.timezone','Asia/Shanghai');
- error_reporting(E_ERROR);
-
- require_once "../lib/WxPay.Api.php";
- require_once '../lib/WxPay.Notify.php';
- require_once 'log.php';
-
- //初始化日志
- $logHandler= new CLogFileHandler("../logs/".date('Y-m-d').'.log');
- $log = Log::Init($logHandler, 15);
-
- class NativeNotifyCallBack extends WxPayNotify
- {
- public function unifiedorder($openId, $product_id)
- {
- //统一下单
- $input = new WxPayUnifiedOrder();
- $input->SetBody("test");
- $input->SetAttach("test");
- $input->SetOut_trade_no(WxPayConfig::MCHID.date("YmdHis"));
- $input->SetTotal_fee("1");
- $input->SetTime_start(date("YmdHis"));
- $input->SetTime_expire(date("YmdHis", time() + 600));
- $input->SetGoods_tag("test");
- $input->SetNotify_url("http://paysdk.weixin.qq.com/example/notify.php");
- $input->SetTrade_type("NATIVE");
- $input->SetOpenid($openId);
- $input->SetProduct_id($product_id);
- $result = WxPayApi::unifiedOrder($input);
- Log::DEBUG("unifiedorder:" . json_encode($result));
- return $result;
- }
-
- public function NotifyProcess($data, &$msg)
- {
- //echo "处理回调";
- Log::DEBUG("call back:" . json_encode($data));
-
- if(!array_key_exists("openid", $data) ||
- !array_key_exists("product_id", $data))
- {
- $msg = "回调数据异常";
- return false;
- }
-
- $openid = $data["openid"];
- $product_id = $data["product_id"];
-
- //统一下单
- $result = $this->unifiedorder($openid, $product_id);
- if(!array_key_exists("appid", $result) ||
- !array_key_exists("mch_id", $result) ||
- !array_key_exists("prepay_id", $result))
- {
- $msg = "统一下单失败";
- return false;
- }
-
- $this->SetData("appid", $result["appid"]);
- $this->SetData("mch_id", $result["mch_id"]);
- $this->SetData("nonce_str", WxPayApi::getNonceStr());
- $this->SetData("prepay_id", $result["prepay_id"]);
- $this->SetData("result_code", "SUCCESS");
- $this->SetData("err_code_des", "OK");
- return true;
- }
- }
-
- Log::DEBUG("begin notify!");
- $notify = new NativeNotifyCallBack();
- $notify->Handle(true);
|