人狠话不多 贴代码:
//处理微信支付回调
public function notify(){
$testxml = file_get_contents("php://input");
$jsonxml = json_encode(simplexml_load_string($testxml, 'SimpleXMLElement', LIBXML_NOCDATA));
$result = json_decode($jsonxml, true);//转成数组,
if($result){
//如果成功返回了
$out_trade_no = $result['out_trade_no'];
if($result['return_code'] == 'SUCCESS' && $result['result_code'] == 'SUCCESS'){
//执行业务逻辑改变订单状态等操作
//查询创建订单表 where("out_trade_no='".$out_trade_no."' and status=1") status为1表示待支付状态 1 待支付
//查询出来有该订单 就改变支付状态 status=2 2表示支付成功
}
}
}
代码没有问题的的话请检查以下问题:
1、检查回调url是否正确,回调url是不能带参数
的,请注意。
2、是否有按照文档要求正确返回参数<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>
给到微信。
3、是否开启了防火墙把微信的通知给屏蔽
了。
4、是否响应超时
(服务器性能)。
5、是否正确使用post请求
。
6、回调url修改成http协议
试试,https可能认证不了证书。
1 条评论