收藏
回答

微信支付点金计划的商家小票 MD5值不匹配

我们在微信 上提交了 1:特约商户号(sub_mch_id),2:商户订单号(out_trade_no),3:微信订单号”(transaction_id) 还有商家小票地址,提交后微信回调了商家的小票地址,在小票地址里得到的微信给的check_code值为啥和我自己做的md5值不一样?



下面附上开发文档的说明:

1) 通过商家小票链接获取用户订单信息:

点金计划页面打开时,页面上方的 iframe 框架会请求服务商填写的商家小票链接,会在链接后附 上:“特约商户号(sub_mch_id)”、“商户订单号(out_trade_no)”、“md5 校验码 (check_code)”三个字段的信息,方便服务商快速定位到具体订单的同时,也保证链接的可靠 性。

a) 增加参数后的链接格式为: 服务商链接?sub_mch_id=特约商户号&out_trade_no=商户订单号&check_code=

 

 b) 举例:

若服务商配置的链接为 https://www.qq.com,特约商户号为 1234567,商户订单号为 ABCDEFG,则请求的链接为 https://www.qq.com?sub_mch_id=1234567&out_trade_no=ABCDEFG&check_code= 39f0876dd58e4eb61b66250f69d02705

2) 服务商校验 check_code 服务商获取到上述完整链接时,为了保证参数没有被篡改,需要做 MD5 校验。

a) 校验方式

通过链接上的“商户订单号”,到后台获取该订单对应的“微信订单号”,即 transaction_id, 并拼在原有链接后(需去除 check_code,即:服务商链接?sub_mch_id=特约商户号 &out_trade_no=商户订单号&transaction_id=),进行 MD5 计算。

b) 举例

若 transaction_id 为 abcdefg,则 MD5 值为:

String my_check_code = MD5(“https://www.qq.com?sub_mch_id=1234567&out_trade_no=ABCDEFG&transactio n_id=abcdefg”);

若 my_check_code 与最初链接参数中的 check_code 相等,说明该链接未被篡改,可正常跳转 到商家小票内容,否则服务商需展示错误提示页。


开发文档说明结束。


回答关注问题邀请回答
收藏

2 个回答

  • 三众科技
    三众科技
    2021-01-08

    您好,我的是spirngmvc模式,域名方式访问,现在.txt微信在校验的时候一直找不到,我放到根目录了

    2021-01-08
    有用
    回复
  • 微信支付技术助手8
    微信支付技术助手8
    2020-07-13

    你好,麻烦提供下参数和单号看看。谢谢。

    2020-07-13
    有用
    回复 10
    • huisscom
      huisscom
      2020-07-14
      啥时方便看看我的回复?
      2020-07-14
      1
      回复
    • 帅小肥
      帅小肥
      2020-07-21回复huisscom
      问题解决了吗?咋解决的?
      2020-07-21
      回复
    • 金鸿
      金鸿
      2020-07-23回复huisscom
      同样的问题,请问你解决了吗?
      2020-07-23
      回复
    • 毅
      2020-07-27
      怎么解决的,遇到同样的问题
      2020-07-27
      回复
    • jf.wang
      jf.wang
      2020-07-27
      怎么解决的,遇到同样的问题,MD5计算出来的值不一致
      2020-07-27
      回复
    查看更多(5)
登录 后发表内容
问题标签