php微信支付回调完整版案例 V2
代码如下,配置商户支付密钥后可以直接用
// 配置信息 $key = 'your_key'; // 商户支付密钥 // 获取回调数据 $xml = file_get_contents('php://input'); $data = fromXml($xml); // 验证签名 $sign = $data['sign']; unset($data['sign']); if (makeSign($data, $key) != $sign) { exit('fail'); } // 处理业务逻辑 if ($data['result_code'] == 'SUCCESS' && $data['return_code'] == 'SUCCESS') { // 支付成功,处理订单逻辑 // ... // 返回结果 exit('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>'); } else { // 支付失败,记录日志 // ... // 返回结果 exit('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[ERROR]]></return_msg></xml>'); } // 生成签名 function makeSign($data, $key) { ksort($data); $str = ''; foreach ($data as $k => $v) { if ($v != '' && !is_array($v)) { $str .= $k.'='.$v.'&'; } } $str .= 'key='.$key; return strtoupper(md5($str)); } // xml转数组 function fromXml($xml) { libxml_disable_entity_loader(true); return json_decode(json_encode(simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true); }
#测试可用
版权声明:
作者:admin
链接:http://blog.mryxh.cn/3153.html
文章版权归作者所有,未经允许请勿转载。
THE END