支付结果通用通知获取到了返回的xml,请问在验证签名的时候需要哪些参数参与签名,签名算法文档里没有讲到,谢谢!
好好看文档点点滴滴
把xml中的所有字段除了sign,都参与签名再去验证就对了,就是除了sign其他所有参数都参与;那些个不懂的人老是说看文档api啥的,都是傻逼,根本无法理解
有啊,回调有验证签名的,WxpayAPI_php_v3.zip,可以通知成功,不过却只想了8次,没有提前终止,我也不知道呢里错了,感觉不好用,我还是用回了上一个版本,感觉比较清晰,好用。
require('WxPayPubHelper.php'); $notify = new \Notify_pub(); //存储微信的回调 $xml = $GLOBALS['HTTP_RAW_POST_DATA']; $notify->saveData($xml); $arr = $notify->data; if ($notify->checkSign() === FALSE) { $notify->setReturnParameter("return_code", "FAIL"); //返回状态码 $notify->setReturnParameter("return_msg", "签名失败"); //返回信息 } else { $notify->setReturnParameter("return_code", "SUCCESS"); //设置返回码 } $returnXml = $notify->returnXml();//这边主要是就是输出了success,让腾讯服务不再进行通知 //下面就是执行逻辑业务了 if ($notify->checkSign() === TRUE) { if ($arr["return_code"] == "FAIL") { } elseif ($arr["result_code"] == "FAIL") { } else { //订单成功,执行业务逻辑 //修改订单状态、加入支付流水、交易流水等等 } }
你下载WxPayPubHelper.php里面就有了,只要你 $returnXml = $notify->returnXml();成功输出success的xml,以及你最后的业务走完,不出现异常,整个业务的8个通知会提前终止,不再发起通知。
支付结果通用通知
签名算法
文档已经交代的很清楚了噢。
就是收到的所有参数外加设置好的key拼成url参数签名,因为结果不同,收到的xml结果是不一样的,所以这边最好写个工具类去将收到的xml转成map然后动态遍历处理。