java - 微信支付结果通知签名

 谢撒旦法_774 发布于 2022-10-27 03:12

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

5 个回答
  • 好好看文档点点滴滴

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

    2022-10-27 03:13 回答
  • 有啊,回调有验证签名的,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个通知会提前终止,不再发起通知。

    2022-10-27 03:13 回答
  • 支付结果通用通知
    签名算法

    文档已经交代的很清楚了噢。

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

    2022-10-27 03:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有