fenshen233
分神Mater
采纳率25%
2017-11-15 08:17 阅读 3.9k

微信支付回调sign与发送的sign不一致

我使用的是微信**官方的PHP微信支付demo**

可以正常生成支付二维码,也可以正常支付。

但是发送的签名和回调页面接收的签名不一致!

比如:
发送的数据如下:

(
[values:protected] => Array
(
[appid] => wx76f7cd2ec7b8ab2d
[attach] => test
[body] => test
[goods_tag] => test
[mch_id] => 1488792332
[nonce_str] => 8qr8mtclw9jy8xba2rvhcq32vc8wk2do
[notify_url] => http://xxx.xxx.com/wxpay/callback
[out_trade_no] => 148879233220171115161152
[product_id] => 123456789
[spbill_create_ip] => 192.168.1.37
[time_expire] => 20171115162152
[time_start] => 20171115161152
[total_fee] => 1
[trade_type] => NATIVE
[sign] => BB76D04E3DCAD9CE70257E3ACC9151D2
)

返回的数据如下:

array (
'appid' => 'wx76f7cd2ec7b8ab2d',
'attach' => 'test',
'bank_type' => 'CFT',
'cash_fee' => '1',
'fee_type' => 'CNY',
'is_subscribe' => 'Y',
'mch_id' => '1488792332',
'nonce_str' => '8qr8mtclw9jy8xba2rvhcq32vc8wk2do',
'openid' => 'oBKxE1S1yV9LbhVE6u50Jd0Uu_uM',
'out_trade_no' => '148879233220171115161152',
'result_code' => 'SUCCESS',
'return_code' => 'SUCCESS',
'sign' => 'FA8ECA45F2AB40D7ABEC5A0D7308ADC8',
'time_end' => '20171115161214',
'total_fee' => '1',
'trade_type' => 'NATIVE',
'transaction_id' => '4200000028201711154840327436',
)

可以看到sign字段不一致!求大神解答!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • fenshen233 分神Mater 2017-11-15 08:32

    而且用微信的签名校验工具,把我发送给微信的xml中的sign参数换成微信回调给我的sign,验证是不通过的。

    点赞 评论 复制链接分享
  • wumian9063 Mr叶 2017-12-25 07:32

    这问题是统一下单和回调校验签名算法不一样。请求用HMAC-SHA256算法生成的签名,回调函数校验函数里面缺省用MD5签名的。我遇到同样的问题。

    点赞 评论 复制链接分享
  • bcxcm bcxcm 2018-12-27 14:33

    你理解错误了,好好学习一下签名。本来sign就不一样,只是key一样

    点赞 评论 复制链接分享

相关推荐