竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


235月/160

微信开发常见报错及解决方法

发布在 邵珠庆

小技巧:可能过ctrl+f 进行查找您遇到的问题。

支付方式 报错提示 解决方法  
热点问题 支付返回签名错误 注意签名参数的大小写,支付密钥key要到商户平台设置,设置的规则是32位数字与字母大小写的组合。以下链接为签名过程。
(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=3_1)
 
 
支付回调 认证后的服务号之间支持跨号支付。  
支付失败 请检查商户号是否错误或支付密钥key设置错误。  
redirect——uri参数错误 请进入公众平台-开发者中心,找到填写商户的支付授权域名,填写的就是商户支付授权目录上的域名。  
paysinkey如何获取? 新版的微信支付是没有这个paysignkey参数的,具体的参数请查看文档  
(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=3_1)  
mchid是指什么? MCHID参数指的是商户号  
openid的获取请参考文档 openid的获取请参考文档详细介绍  
(http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html)  
openid如何获取? openid的获取请参考文档查看详细介绍:  
(http://mp.weixin.qq.com/wiki/14/bb5031008f1494a59c6f71fa0f319c66.html)  
Appsecret如何获取? APPsecret参数可进入公众平台(https://mp.weixin.qq.com)开发者中心查看。  
调用报错
get_brand_wcpay_request:fail
签名错误,请仔细检查签名。  
spbill_create_ip 是指什么? spbill_create_ip 指的是终端ip,在APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。  
网页支付(JSAPI) “当前公众号没有权限支付本次交易“ 检查该公众帐号是否已经获取了支付资格。  
“公众帐号支付使用了无效的商户号,无法发起该笔交易” 检查商户号使用错误。  
“该公众号支付签名无效,无法发起该笔交易” 调起支付MD5签名的MD5签名错误,请检查相关签名。  
“Args Error” 提交JS时,josn传递参数必须与文档中名字一致,大小写匹配。  
“access:not_allow” 未设置白名单,添加位置:微信公众平台=》微信支付=》开发配置  
点击支付无反应 支付授权目录是否正确,如果使用的是支付测试目录,是否设置了白名单,需白名单帐号进行支付测试。  
ios系统可以正常支付,android系统支付失败 timestamp字段值需要加上“”,传递数据必须为字符串类型。  
调用报错
get_brand_wcpay_request:fail
签名错误,请仔细检查签名。  
调用报错:
zhgj-2014+中涵国际分销商城及“订单满送红包无法送”
商户设置有问题。  
IOS系统调用支付JSAPI报错
缺少参数:$key0$,android 没问题
提交的参数有问题,注意全部参数都得是字符串类型。  
支付验证签名失败 签名错误,仔细检查签名。  
jsapi 缺少参数 key0 问题出在网页端调起支付API接口中timeStamp参数,必须是string类型,但是php默认生成的时间戳是int类型。
解决方法:修改下lib/Wxpay.Data.php约2731行处SetTimeStamp方法,修改为$this->values['timestamp'] = (string)$value;
 
安卓手机可以收到满送红包 苹果的不行 红包虽然已经显示发送了红包但是实质资金流水没有扣除资金 参数错误,请仔细检查。  
调用报错:
传输参数错误
推测为提交的支付请求参数不正确;以下文档有详细的参考。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_7  
调用报错:
没有获取到微信支付预支付ID,请管理员检查微信支付配置项
需要按照文档要求 ,先获取prepay_id。  
支付权限检查失败 商户所用的参数对应的APPID是APP支付;如果商户想要JSAPI支付,需要在公众平台申请公众号,公众号支付中才有此参数。  
原生支付(扫码支付) “获取商户数据失败” 请检查申请native支付时的回调URL地址是否正确,是否可以外网访问获取数据。  
“商户返回数据错误” native回调返回数据格式错误,非XML格式数据。  
“签名错误” 检查MD5签名中参数格式及值是否正确。  
调用报错:
获取商户订单信息超时或商户返回httpcode非200
签名错误,请仔细检查签名。  
错误返回:错误码:60 错误通过修改文件:WxPay.Api.php解决,具体如下:
第537行
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TURE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,2);//严格校验
to
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);//严格校验2
微信支付错误两个问题的解决:curl出错,错误码:60
 
APP支付 错误返回“-1” 开放平台配置的报名和应用签名是否一致:(android);确认是否使用正式的keystore打包apk并安装调试;(android);提交订单部分需要在服务器端完成。  
下单报{"errcode":62621014,"errmsg":""} Package数据MD5签名错误,请参照文档检查。  
下单报"1001"错误 package里缺少必要参数;金额类型为证书,单位是分。  
android签名正常,ios签名错误 需要注意body如果是中文,需要编码,编码格式统一为“UTF-8”。  
支付授权地址没有经过ICP验证 域名需要是英文备案域名方可。(此情况针对备案域名中包含中文字符或其他)  
ios系统:订单成功,无法跳转到支付界面 请仔细查阅参考开发文档步骤。  
支付结果报错:errStr=null,code=-1 请检查开放平台配置的包名和签名是否跟APK安装后的包名签名一致,一致才会调用的。  
支付无法调起 请检查开放平台配置的包名和签名是否跟你的APK安装后的包名签名一致,一致才会调用的。  
需要V3版的app支付服务端demo,因获取prepayId失败,找不到app_key 新版的微信支付是没有这个参数的,请查看最新版文档。  
请求prepayid发生错误:
errcode":268497023,"errmsg
请将商户的APPID和商户号以及报错截图发送至wepayTS@tencent.com,进行深入了解。  
支付返回报错:
:"errcode":268497023,"errmsg":"您已完成交易接口升级,老接口交易权限已关闭,请使用新接口进行交易。如有疑问请联系微信支付客服咨询"
请将商户的APPID和商户号以及报错截图发送至wepayTS@tencent.com,进行深入了解。  
请求prepayid发生错误:
信息[{"errcode":268497023,"errmsg":"鎮ㄥ凡瀹屾垚浜ゆ槗鎺ュ彛鍗囩骇锛岃 鎺ュ彛浜ゆ槗鏉冮檺宸插叧闂紝璇蜂娇鐢ㄦ柊鎺ュ彛杩涜浜ゆ槗銆傚鏈夌枒闂鑱旂郴寰俊鏀粯瀹㈡湇鍜ㄨ"}]
请将商户的APPID和商户号以及报错截图发送至wepayTS@tencent.com,进行深入了解。  
根据文档下订单,调用微信支付失败。调用微信支付的时候,微信为登录状态则无反应;微信未登录状态,会调用微信登录界面。 请将商户的APPID和商户号以及报错截图+请求参数详情,发送至wepayTS@tencent.com,进行深入了解。  
常见问题 申请正在审核中,如何可以提前调试测试? 只需要资料审核通过,收到通知邮件即可通过配置测试目录进行联调测试。未审核通过可下载文档进行开发,但不能联调测试。  
支付授权目录是什么? 支付授权目录是支付功能正式上线后,商户后台发起支付请求的页面所在的目录。  
支付测试目录是什么? 支付测试目录提供给开发者,在开发测试期间使用的临时目录。  
支付测试目录和授权目录有何区别? 支付授权目录将会在产品上线审核时,以及上线后长期使用的正式目录;测试目录只能配置白名单,才可以在公众号内发起支付。  
如何配置支付目录(授权、测试)? 登录微信公众平台-微信支付-开发配置-修改  
支付目录有什么规则? 头部需要包含http或https,须细化到二级或三级目录,字母小写,以左斜杠“/”结尾。  
如何配置授权回调页面域名? 登录微信公众平台=》开发者中心=》网页授权获取用户基本信息=》修改  
微信支付接口的签名规则是如何的? MD5签名,订单数据签名,所有传输的字段均需要参与签名,使用商户密钥key在签名字段排序后放入在最后组包签名。  
 “订单数据签名验证失败”如何解决? 检查参数是否一致;是否含有特殊字符;中文编码类型是否与所传参数一致;body参数是否含空格,若有空格URLencode的时需要转为%20。  
报40001错误,如何解决? accesstoken失效或者过期,accesstoken有效期为2小时,如果有系统或者人为重新获取,前一个accesstoken也会自动消失。请保证accesstoken为全局管理,避免重复获取。  
签名正常,却提示fail_invalid appid 查看支付授权目录是否设置正确,所支付页面路径是否在支付授权目录下。  
公众号是否可以跨号支付? 两个具有支付权限的服务号之间可以跨号支付,但不可混淆appid。  
支付完成,Notify URL无法接收回调通知 需要绝对路径,外网可访问,不支持非80端口,同时注意不要被防火墙拦截;可自行用fiddler模拟post访问是否正常。  
查询订单接口报“errcode":49001,"errmsg": 检查accesstoken是否为同一APPID获取;POST数据必须为JSON格式,  
"not same appid with appid of access_token"错误如何解决? 避免格式不对导致获取APPID不一致。  
支付提示“系统繁忙,请稍后再试” 检查签名及传入参数是否与文档要求一致;尤其是MD5签名部门的正确性。  
调用支付报错【特殊】 调用报错:
“chooseWXPay:fail”
此情况需要商户将提交的签名过程发送至邮箱:wepayTS@tencent.com,进行深入了解。  
调用报错:
“{return_msg=支付权限检查失败, return_code=FAIL}”
此情况需要将提交的xml发送至邮箱:wepayTS@tencent.com,进行深入了解。  
zhgj-2014+中涵国际分销商城及“订单满送红包无法送” 请将商户的APPID和商户号以及报错截图发送至wepayTS@tencent.com,进行深入了解。  
微信支付完成后不能执行回调 请将商户的APPID和商户号以及报错截图发送至wepayTS@tencent.com,进行深入了解。  
报错:不允许跨号支付
ios上没这个问题,android上有些商品有这个问题
是否通过订阅号发出此请求,请将APPID,商户号,报错截图及请求参数发送至wepayTS@tencent.com,进行深入了解。