微信统一下单支付接口获取prepay_id偶尔会报错:INVALID_REQUEST是设置错误造成的,解决方法为:
1、商户在微信开放平台申请开发APP应用后,微信开放平台会生成APP的唯一标识APPID。在Xcode中打开项目,设置项目属性中的URL Schemes为您的APPID。
2、商户APP工程中引入微信lib库和头文件,调用API前,需要先向微信注册您的APPID,代码如下。
3、商户服务器生成支付订单,先调用【统一下单API】生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。
4、照微信SDK Sample,在类实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。
5、输入-(void)onResp:(BaseResp*)resp{
if ([respisKindOfClass:[PayRespclass]]){
PayResp*response=(PayResp*)resp;switch(response.errCode){caseWXSuccess://服务器端查询支付通知或查询API返回的结果再提示成功NSlog(@"支付成功");break; default:NSlog(@"支付失败,retcode=%d",resp.errCode);break。
订单号(orderNum)重复 如第一次传入单号
orderNum:3a6154e2a662407c8223971284c38 body:test
第二次传入
orderNum:3a6154e2a662407c8223971284c38 body:result
这个时候就回报错INVALID_REQUEST 原因是单号相同 主体不同 所以系统就会认为是单号重复