云托管程序调用统一下单接口http://api.weixin.qq.com/_/pay/unifiedorder
的时候搜到错误提示:
支付请求:
request:{"body":"******(这里做了隐藏)","openid":"olTdj7DUBelSm1hDVCjAK0Fb2SUo","out_trade_no":"29","spbill_create_ip":"11.163.0.80","env_id":"prod-4gyuy2g2d8dc9e78","sub_mch_id":"1711264426","total_fee":10,"callback_type":2,"container":{"service":"dotnet-3e7f","path":"/notify/wxPay"}}
response:{ "errcode":0, "errmsg":"ok", "respdata": {"return_code":"SUCCESS","return_msg":"OK","appid":"wxd2d16a504f24665e","mch_id":"1800008281","sub_appid":"wx3384418b46d90ce4","sub_mch_id":"1711264426","nonce_str":"1pgWeahjn7WBEWAf","sign":"417CCF5979D90A0F9E2D6B06C8E09A1E","result_code":"FAIL","err_code":"INVALID_REQUEST","err_code_des":"201 商户订单号重复","payment":{"appId":"wx3384418b46d90ce4","timeStamp":"1745131798","nonceStr":"1pgWeahjn7WBEWAf","package":"prepay_id=","signType":"MD5","paySign":"3AC72DEAEE5005874A87D29F63DB28B5"}} }
开始觉得是代码错误,尝试了几次新生成的out_trade_no 还是同样的错误,于是,在下单之前先查询订单,收到的提示是这样的:
查询订单:
request:{"out_trade_no":"29","sub_mch_id":"1711264426"}
response:{ "errcode":0, "errmsg":"ok", "respdata": {"return_code":"SUCCESS","return_msg":"OK","appid":"wxd2d16a504f24665e","mch_id":"1800008281","sub_appid":"wx3384418b46d90ce4","sub_mch_id":"1711264426","nonce_str":"lgnUuWcrlEVYXfUT","sign":"1B1052EF3B36E997281541F7CE9091EE","result_code":"FAIL","err_code":"PARAM_ERROR","err_code_des":"子商户号和订单信息不匹配","coupon_id_list":[],"coupon_type_list":[],"coupon_fee_list":[]} }
这里提示“子商户号和订单信息不匹配”,说明商户号下不存在这个单,打算重新更换单号的拼接格式,但没法确定哪些单号会出现这样的问题,难说某一天产生的新单号又出现重复了,然后支付流程就走不下去了。
"out_trade_no":"29"
你这商户订单号长度太短了,出现重复概率及其大,建议16字节以上