收藏
回答

HMAC-SHA256签名错误?

https://pay.weixin.qq.com/wiki/doc/api/tools/cash_coupon.php?chapter=13_4&index=3 现金发红包接口

已按照https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1 手动填入参数

#2.连接商户key:

act_name=3333321ss&client_ip=118.89.65.223&mch_billno=a0000000000000000001&mch_id=1529243621&nonce_str=905Qh0J59d69JjDtD7QkyRAm576kh5hU&re_openid=oiW0l03-60UfHJfo0olLt3wOLb0E&remark=111&remark=222dddd&send_name=111&sign_type=HMAC-SHA256&total_amount=100&total_num=1&wishing=2222&wxappid=wx7be0736b916a50f1&key=aVumz6nk2w9JE2HXwl5fwCV0711J5M9Q

sign=72BA838444C5CEF4225371AF0352BFE3EF59039C83A328D7B0E3FB5A23724CFD

得到最终XML结构

<xml>
	<act_name><![CDATA[3333321ss]]></act_name>
	<client_ip><![CDATA[118.89.65.223]]></client_ip>
	<mch_billno><![CDATA[a0000000000000000001]]></mch_billno>
	<mch_id><![CDATA[1529243621]]></mch_id>
	<nonce_str><![CDATA[905Qh0J59d69JjDtD7QkyRAm576kh5hU]]></nonce_str>
	<re_openid><![CDATA[oiW0l03-60UfHJfo0olLt3wOLb0E]]></re_openid>
	<remark><![CDATA[111]]></remark>
	<remark><![CDATA[222dddd]]></remark>
	<send_name><![CDATA[111]]></send_name>
	<sign_type><![CDATA[HMAC-SHA256]]></sign_type>
	<total_amount><![CDATA[100]]></total_amount>
	<total_num><![CDATA[1]]></total_num>
	<wishing><![CDATA[2222]]></wishing>
	<wxappid><![CDATA[wx7be0736b916a50f1]]></wxappid>
	<sign>72BA838444C5CEF4225371AF0352BFE3EF59039C83A328D7B0E3FB5A23724CFD</sign>
</xml>


但是把该XML发送至接口提示签名错误.

已使用utf-8编码..测试MD5签名方式已成功.HMAC-SHA256失败



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

2 个回答

  • 王申杰
    王申杰
    2021-07-30

    微信文档没有写清楚, 这里需要将API秘钥作为HMAC-SHA256的key来进行计算.

    HMAC-SHA256 接收Key和Data

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

    您好,应该是以下问题导致的:

    1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)

    2、加密前没有按照文档进行参数排序(可参考文档)

    3、把值为空的参数也进行了签名。可到(http://mch.weixin.qq.com/wiki/tools/signverify/ )验证。

    4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉,换成英文,试下,看看是否是编码问题。(post的数据要求是utf8)

    请按照以下的几点进行排查:

    1、到商户平台重新设置新的密钥后重试

    2、检查请求参数把空格去掉重试

    3、 中文不需要进行encode,使用CDATA

    4、 按文档要求生成签名后再重试

    在线签名验证工具:http://mch.weixin.qq.com/wiki/tools/signverify/

    2020-07-30
    有用
    回复 7
    查看更多(2)
登录 后发表内容
问题标签