收藏
回答

微信支付接口发送红包问题

微信支付。开通了红包功能。使用API进行发送。接口的参数 和在线的校验网页计算的SIGN是一模一样。

仍然提示签名错误。必须连续交易达30天才可以接口发送红包吗?


发送之前拼接好的参数 包含SIGN

<xml>
  <sign>432DCD7DB8059B651065025C849A9E96</sign>
  <mch_billno>1373020202201943285174618062</mch_billno>
  <mch_id>1373020202</mch_id>
  <wxappid>wx9b14c544624ae5ca</wxappid>
  <send_name>红包</send_name>
  <re_openid>oO9mBwW1gpUZlj5JHuTq2J2bZS0s</re_openid>
  <total_amount>100</total_amount>
  <total_num>1</total_num>
  <wishing>红包</wishing>
  <client_ip>127.0.0.1</client_ip>
  <act_name>红包</act_name>
  <remark>红包</remark>
  <nonce_str>xua0nht4y1suqcsd1t46x9xj</nonce_str>
</xml>


在线网页校验工具


#1.对参数按照key=value的格式,并按照参数名ASCII字典序排序生成字符串:
act_name=红包&client_ip=127.0.0.1&mch_billno=1373020202201943285174618062&mch_id=1373020202&nonce_str=xua0nht4y1suqcsd1t46x9xj&re_openid=oO9mBwW1gpUZlj5JHuTq2J2bZS0s&remark=红包&send_name=红包&total_amount=100&total_num=1&wishing=红包&wxappid=wx9b14c544624ae5ca
 
#2.连接商户key:
act_name=红包&client_ip=127.0.0.1&mch_billno=1373020202201943285174618062&mch_id=1373020202&nonce_str=xua0nht4y1suqcsd1t46x9xj&re_openid=oO9mBwW1gpUZlj5JHuTq2J2bZS0s&remark=红包&send_name=红包&total_amount=100&total_num=1&wishing=红包&wxappid=wx9b14c544624ae5ca&key=apikey就不显示了
 
#3.生成sign并转成大写:
sign=432DCD7DB8059B651065025C849A9E96
 
#4.校验结果:
原sign值:432DCD7DB8059B651065025C849A9E96
新sign值:432DCD7DB8059B651065025C849A9E96
 
校验通过




接口返回

<xml>
<return_code><![CDATA[SUCCESS]]></return_code>
<return_msg><![CDATA[签名错误]]></return_msg>
<result_code><![CDATA[FAIL]]></result_code>
<err_code><![CDATA[SIGN_ERROR]]></err_code>
<err_code_des><![CDATA[签名错误]]></err_code_des>
<mch_billno><![CDATA[1373020202201943285174618062]]></mch_billno>
<mch_id><![CDATA[1373020202]]></mch_id>
<wxappid><![CDATA[wx9b14c544624ae5ca]]></wxappid>
<re_openid><![CDATA[oO9mBwW1gpUZlj5JHuTq2J2bZS0s]]></re_openid>
<total_amount>100</total_amount>
</xml>


最后一次编辑于  01-28  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

2 个回答

  • 波
    01-28

    您好,可能存在的原因:

    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/


    01-28
    赞同
    回复 2
    • 小帅丶
      小帅丶
      01-29

      必填参数。计算方式都是按文档来的。计算的SIGN和网页计算也是一模一样的。

      API密钥 是没错的。支付都是没问题的。

      建议官方人员看仔细点再回复。

      01-29
      回复
    • 波
      01-30回复小帅丶

      您好,请提供一下您的支付key。

      01-30
      回复
  • 小帅丶
    小帅丶
    01-29

    连续交易达30天这个是必须条件吗?你是技术吗?

    01-29
    赞同
    回复 2
    • 波
      01-30

      您好, 根据监管要求,新申请商户号使用现金红包需要满足两个条件:1、入驻时间超过90天 2、连续正常交易30天。 是必须条件。

      01-30
      回复
    • 波
      01-30回复

      您的权限是开通过的。

      01-30
      回复