微信支付结果通知签名

支付结果通用通知获取到了返回的xml,请问在验证签名的时候需要哪些参数参与签名,签名算法文档里没有讲到,谢谢!

阅读 8.3k
5 个回答

就是收到的所有参数外加设置好的key拼成url参数签名,因为结果不同,收到的xml结果是不一样的,所以这边最好写个工具类去将收到的xml转成map然后动态遍历处理。

有啊,回调有验证签名的,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个通知会提前终止,不再发起通知。

新手上路,请多包涵

把xml中的所有字段除了sign,都参与签名再去验证就对了,就是除了sign其他所有参数都参与;那些个不懂的人老是说看文档api啥的,都是傻逼,根本无法理解

好好看文档点点滴滴

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题