赞
踩
Thinkphp集成微信支付SDK
遇到微信回调无法获取回调参数,导致重写的回调函数无法执行的问题
改成
$xml=file_get_contents(“php://input”);
就可以了
/**
* WxPay.API.php
* 支付结果通用通知
* @param function $callback
* 直接回调函数使用方法: notify(you_function);
* 回调类成员函数方法:notify(array($this, you_function));
* $callback 原型为:function function_name($data){}
*/
public static function notify($callback, &$msg)
{
//获取通知的数据
// $xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$xml=file_get_contents("php://input");
//如果返回成功则验证签名
try {
$result = WxPayResults::Init($xml);
} catch (WxPayException $e){
$msg = $e->errorMessage();
return false;
}
return call_user_func($callback, $result);
}
以下是重写的回调处理函数notify.php文件中PayNotifyCallBack类
//重写回调处理函数,写上你自己对于支付成功后的操作
public function NotifyProcess($data, &$msg)
{
Log::DEBUG("call back:" . json_encode($data));
$notfiyOutput = array();
if(!array_key_exists("transaction_id", $data)){
$msg = "输入参数不正确";
return false;
}
//查询订单,判断订单真实性
if(!$this->Queryorder($data["transaction_id"])){
$msg = "订单查询失败";
return false;
}
return true;
}
}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。