- wx.requestCommonPayment 报’out_trade_no重复,请更换新单号?
调用B2B支付时,报这个‘out_trade_no重复,请更换新单号‘ 对于同一订单,看起来是需要生成新单号去申请,可是这样子,微信上用户不就可以付两次款了嘛? 第一次的支付单子又不能关闭?或者怎么关闭呢,有接口嘛
10-24 - wx.requestCommonPayment 用户态签名校验失败?
public static String calcSignature(String postBody, String sessionKey) { // 输入验证 if (postBody == null || postBody.isEmpty() || sessionKey == null || sessionKey.isEmpty()) { return null; } try { // 准备签名消息 byte[] needSignMsg = postBody.getBytes("UTF-8"); // 创建HMAC-SHA256实例 Mac sha256Hmac = Mac.getInstance("HmacSHA256"); SecretKeySpec secretKey = new SecretKeySpec(sessionKey.getBytes("UTF-8"), "HmacSHA256"); sha256Hmac.init(secretKey); // 生成签名 byte[] hash = sha256Hmac.doFinal(needSignMsg); // 将字节数组转换为十六进制字符串 StringBuilder hexString = new StringBuilder(); for (byte b : hash) { String hex = Integer.toHexString(0xFF & b); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } // 返回签名 return hexString.toString(); } catch (NoSuchAlgorithmException | InvalidKeyException | java.io.UnsupportedEncodingException e) { System.err.println("生成签名时发生错误: " + e.getMessage()); return null; } } String signature = calcSignature(JSON.toJSONString(signData), sessionKey); 为什么还是签名校验失败,返回requestCommonPayment:fail webapi_wxa_createmidasorder:fail invalid signature" 702002。 哪里需要修改呢?
10-21