收藏
回答

微信支付加密方式是不是把HMAC-SHA256干掉了

上周在做微信支付时,加密方式选择了HMAC-SHA256,使用JSAPI的统一下单接口,可以正确地跑通,拿到返回数据,今天突然跑不通了,一直报签名错误,一模一样的代码,只是把加密方式改成MD5,就通过了。难道是微信把这个加密方式干掉了?

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

2 个回答

  • 红萝卜炒鸡蛋
    红萝卜炒鸡蛋
    2019-11-27

    花了好几天时间挖坑,终于搞定HMAC-SHA256签名,可以使用,这里面有个坑,用默认的MD5时,签名里无需加入sign_type字段就可以验证通过,改成HMAC-SHA256后需加入sign_type,并且要注意参数名称排序顺序,后面的pay_sign也一样。我改的程序之前是别人开发的,我中间接进去将原先的MD5改成HMAC-SHA256,根本就不会去想签名参数少了,以为原先MD5可以了应该参数都没问题的,哎。。。这个参数为什么不直接搞成必须填的呢?为了省这一个参数,挖了一个好大的坑,我估计很多人都被这坑坑惨了!


    2019-11-27
    有用 3
    回复 9
    • 周T_T
      周T_T
      2020-04-13
      请问sha256支付后面的key值用的是哪一个参数?
      2020-04-13
      回复
    • 红萝卜炒鸡蛋
      红萝卜炒鸡蛋
      2020-04-13回复周T_T
      key为商户平台设置的密钥key
      2020-04-13
      回复
    • 有梦想不睡觉
      有梦想不睡觉
      2020-07-30
      请问层主.sign_type=HMAC-SHA256 这个需要加入排序吗,我试了下都说签名不对,那到底加不加
      2020-07-30
      回复
    • 红萝卜炒鸡蛋
      红萝卜炒鸡蛋
      2020-07-30回复有梦想不睡觉
      要的,sign_type='HMAC-SHA256'
      2020-07-30
      回复
    • 有梦想不睡觉
      有梦想不睡觉
      2020-07-30回复红萝卜炒鸡蛋
      <xml>
      <mch_billno>ssss33</mch_billno><mch_id>1529243621</mch_id><wxappid>wx7be0736b916a50f1</wxappid><send_name>111</send_name><re_openid>oiW0l03-60UfHJfo0olLt3wOLb0E</re_openid><total_amount>100</total_amount><total_num>1</total_num><wishing>2222</wishing><client_ip>118.89.65.223</client_ip><act_name>3333321ss</act_name><remark>111</remark><nonce_str>905Qh0J59d69JjDtD7QkyRAm576kh5hU</nonce_str><sign_type>HMAC-SHA256</sign_type><sign>F3CE6B2EB6869FFBEE99DDEC6EB04DE93D91ABD68BDB50E237685571098E9432</sign></xml>
      2020-07-30
      回复
    查看更多(4)
  • 微信支付技术助手1
    微信支付技术助手1
    2019-08-02

    没有,应该还是可用的。

    2019-08-02
    有用
    回复
登录 后发表内容