收藏
回答

安卓app 调用微信支付v3 显示支付验证签名失败

服务端生成的 {"prepay_id":"wx18120927662278be133d62971e64070001“}

params.put("appId", "");  // 应用 ID
params.put("mchid", "");  // 商户号
params.put("prepay_id", "wx18120927662278be133d62971e64070001");  // 服务器返回的 prepay_id
params.put("nonce_str", nonceStr);  // 随机字符串
params.put("timeStamp", String.valueOf(timestamp));  // 随机字符串
String apiKey = "";  // 商户 API 密钥

// 生成客户端签名
String signature = generateClientSignature(params, apiKey);

PayReq req = new PayReq();
req.appId = "";
req.partnerId = "";
req.prepayId = prepayId; // 从回调中获取 prepay_id
req.nonceStr = nonceStr; // 填入随机字符串
req.timeStamp = String.valueOf(timestamp);
req.packageValue = "Sign=WXPay";
req.signType="HmacSHA256";
req.sign = signature;
api.sendReq(req); // 发起支付请求


app调起微信 显示支付签名失败!!!


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

2 个回答

  • Memory
    Memory
    11-18

    值应该为HMAC-SHA256

    11-18
    有用
    回复 4
    • 粥粥
      粥粥
      11-18
      试了 还是不可以
      11-18
      回复
    • Memory
      Memory
      11-18回复粥粥
      你下单用的V3么?如果是V3 这里是RSA
      11-18
      回复
    • 粥粥
      粥粥
      11-18
      服务端用的v3
      11-18
      回复
    • Memory
      Memory
      11-18回复粥粥
      V3 这里是RSA,签名方式下单和调起需要一致
      11-18
      回复
  • 北望沣渭
    北望沣渭
    11-18

    注意:签名方式一定要与统一下单接口使用的一致

    另注意字段大小写可参考: https://wechatpay.im/guide/digital-signature#symmetric.frontend.cashpay

    11-18
    有用
    回复
登录 后发表内容