收藏
回答

无法用微信支付码获取用户的openid,报错参数错误

我们使用了这个API接口链接: https://api.mch.weixin.qq.com/tools/authcodetoopenid

通过付款码查询公众号Openid,修改了几十次参数,都没法通过支付码获取到指定公众号的用户OPENID,都是参数错误,请问这个接口文档的参数是否已更改?

改都发疯了,都没法处理,怀疑是API接口文档太旧了,接口参数变了,也没更新。

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

2 个回答

  • 北望沣渭
    北望沣渭
    2020-10-22

    刚刚新鲜测试结论是:接口仍旧可用。过程及代码参考如下:

    let results = await Promise.all([
      client.post('/tools/authcodetoopenid', {
        appid,
        mch_id,
        sub_mch_id,
        auth_code,
        nonce_str: fmt.nonce(),
      }).then(({data}) => data),
      client.post('/pay/micropay', {
        appid,
        mch_id,
        out_trade_no: `HelloKitty008`,
        fee_type: 'CNY',
        device_info,
        spbill_create_ip,
        body,
        total_fee,
        sub_mch_id,
        sub_appid,
        auth_code,
        nonce_str: fmt.nonce(),
      }).then(({data}) => data)
    ])
    
    console.info(results)
    
    [
      {
        return_code: 'SUCCESS',
        return_msg: 'OK',
        appid: 'wxe000000000000000',
        mch_id: '1360000000',
        nonce_str: 'H2UV9r7xzz0G16va',
        sign: '1D3D8AEB12C6E766A0832E14BE90591A',
        result_code: 'SUCCESS',
        openid: 'ocK3QjpwV4wyFDoI_b1E3HHd5r4s'
      },
      {
        return_code: 'SUCCESS',
        return_msg: 'OK',
        appid: 'wxe000000000000000',
        mch_id: '13600000000',
        sub_mch_id: '15500000000',
        nonce_str: 'GNEe6TA557LgG1Ez',
        sign: '1BA655B60CB0C90699C630D8503B36E2',
        result_code: 'FAIL',
        err_code: 'USERPAYING',
        err_code_des: '用户已在1分钟内支付过金额相同的订单,需用户确认后继续支付。',
        sub_appid: 'wx7000000000000000'
      }
    ]
    


    参数及结果已脱敏,client实例见 适合云开发的微信支付v2及v3版Nodejs SDK

    2020-10-22
    有用 2
    回复 7
    • 智者
      智者
      2020-10-23
      非常感谢!
      原开发文档里没有sub_mch_id这个参数,这个参数是怎样得到的呢?
      还有请问签名的格式,是HMAC-SHA256还是md5?
      2020-10-23
      回复
    • 北望沣渭
      北望沣渭
      2020-10-23回复智者
      签名是MD5默认的,sub_mch_id是因为这个是服务商模式,服务商商户号因为没有收单能力,所以不具备以auth_code换openid能力,文档见 https://pay.weixin.qq.com/wiki/doc/api/micropay_sl.php?chapter=9_12&index=8
      2020-10-23
      回复
    • 智者
      智者
      2020-10-23回复北望沣渭
      谢谢,请问如果我是特约商户,还没有申请成为服务商,哪么可以使用这个API接口吗,如果可以,哪么sub_mch_id及sub_appid应该取什么值,是否跟appid及mch_id是否为一样呢?
      2020-10-23
      回复
    • 智者
      智者
      2020-10-23回复智者
      纠正上面说法,如果我是一般的服务号(没有申请为服务商),哪么可以使用这个API接口吗,如果可以,哪么sub_mch_id及sub_appid应该取什么值,是否跟appid及mch_id是否为一样呢?如果不可以,是否必须要申请为服务商才行?
      2020-10-23
      回复
    • 北望沣渭
      北望沣渭
      2020-10-24回复智者
      如果是普通商户,看这个文档 https://pay.weixin.qq.com/wiki/doc/api/micropay.php?chapter=9_13&index=9 应该可以查询到
      2020-10-24
      1
      回复
    查看更多(2)
  • 智者
    智者
    2020-10-23

    2020-10-23
    有用
    回复
登录 后发表内容
问题标签