java - 微信支付结果通知签名
PHP中文网
PHP中文网 2017-04-18 09:54:24
[Java讨论组]

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

PHP中文网
PHP中文网

认证0级讲师

全部回复(5)
天蓬老师

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

PHPz

支付结果通用通知
签名算法

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

巴扎黑

有啊,回调有验证签名的,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啥的,都是傻逼,根本无法理解

迷茫

好好看文档点点滴滴

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号