收藏
回答

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

按文档的步骤得到的加密链接如下,参数都换成了自已的。得到的md5加密值与链接里的check_code值不一样。求原因?

另外有两个疑惑:

1、原有链接上有一个时间参数 &t=1683511595129,这个需要加到md5验证参数里面去吗?

2、transaction_id是不是下面这张图里面的交易单号?

下面是文档

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 相等,说明该链接未被篡改,可正常跳转

到商家小票内容,否则服务商需展示错误提示页。
回答关注问题邀请回答
收藏

1 个回答

  • Memory (私信不回复)
    Memory (私信不回复)
    2023-05-08

    1、不需要

    2、是

    2023-05-08
    有用 3
    回复 1
    • xworld😄
      xworld😄
      2023-05-09
      好了。谢谢。
      2023-05-09
      回复
登录 后发表内容