微信支付接口开发 接口 支付失败 是什么问题

微信支付-商户调用支付接口失败,已完成交易接口升级的用户应使用新接口进行交易
微信支付出现如此问题:
这个是苹果手机会爆出的提示;
安卓手机和苹果手机通过JSAPI支付 JS弹出的res.err_msg;都会出现一下错误;
以上的原因为:
使用扫码登录获取用户信息的openid&不能做为公众平台JSAPI支付的openid&;
不保证是唯一原因,但是至少这个会造成以上错误;
顶一下(0) 踩一下(0)
热门标签:微信统一下下单支付接口出现返回签名错误怎么办?
微信支付开发,统一下单 &接口常见错误处理
&xml&&return_code&&![CDATA[FAIL]]&&/return_code&&return_msg&&![CDATA[签名错误]]&&/return_msg&&/xml&,之前在调试微信支付的&统一下单&接口的时候一直遇到&签名错误&。网上查找了各种资料,一般可能是以下几个问题,如果大家出现此错误的话不妨挨个排查,以免浪费时间走弯路。
1、参数名ASCII码未按升序排列,或者是生成MD5字符串没有toUpperCase转换为大写。这种问题解决方法很简单,到微信官网上用校验工具校验即可。
2、key错误。这里特别注意,公众平台的密钥和商户号的密钥是不一样的!!!微信支付审核成功之后会收到一封邮件,邮件中有appid 商户号,商户后台登录上号和密码,登录到商户后台:账户设置-安全设置-切换到API安全,下载证书,下面有一个api密匙,进去填写一个字符串 ,保存,后续两次签名都是用的这个手动设置的key!!!
最后提醒大家,以后一定要认真阅读邮件和文档。
如果本文对您有帮助请分享给您的好友,也可按Ctrl+D收藏本页面,谢谢!
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
问题解决了,非常非常的感谢!!!!!!Android_APP 微信支付接口开发
Android_APP 微信支付接口开发
&1、首先说一下我们在开发微信支付接口的时候遇到最多和最疑惑的问题,那就是明明 appid、商户号、API密钥 都对照了好几遍确实是和自己的一样,并且也没有在Log日志中出现签名错误等信息,却始终调不起微信支付,或是直接回到支付结果后的界面并提示 &微信支付结果:code=-1&。这就是微信支付中的一个深坑之处(为什么说这是深坑之处呢?会在下面特别说明)。
2、下面就教大家如何跳出这个深坑,首先先让图来说话:
3、接下来进行微信支付的接入,本文档重在实现调起微信支付,其中的 sign签名如何生成不进行详细讲解,可以自行上网百度。
微信支付开发步骤:
一、首先去申请开通微信支付功能(亦可从网上找到申请开通的方法),开通后会收到下图所示的一封邮件。
二、从微信支付商户平台下载微信支付的Demo
其Demo的src 目录如下:
四、将微信支付Demo的.java文件放到我们自己的项目中。**这里有一个关键点必须要注意,否则会造成调起微信支付后无法回到支付结果界面, 那就是WXPayEntryActivity.java文件必须放到你工程的 包名.wxapi下,假设你的包名是 com.exemplary.demo 那么WXPayEntryActivity.java文件就应该放到com.exemplary.demo.wxapi 下。**PayActivity.java 文件则可以放到对应的Activity中,其余的.java文件则可以随意放置,然后修改一些小细节即可。
五、修改Constants.java 中的三个参数,然后在AndroidManifest.xml中加入&
1)、对应的权限:
&!-- 微信支付 --&&uses-permission android:name=&android.permission.MODIFY_AUDIO_SETTINGS&/&12
2)、PayActivity:
&activity android:name=&PayActivity的全路径& & &android:label=&@string/app_name& & &android:exported=&true& & &android:launchMode=&singleTop&& & &&!--这个intent-filter不要忘了--& & &&intent-filter& & &&action android:name=&android.intent.action.VIEW&/&&category android:name=&android.intent.category.DEFAULT&/&&data android:scheme=&对应的appid(APP_ID)&/& &/intent-filter&&/activity&1
&!-- 微信支付 --&&receiver
& & &android:name=&AppRegister的全路径&&&intent-filter&&action android:name=&com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP& /&&/intent-filter&&/receiver&1234567
六、有些开发者以为到这里就完成了,然后运行项目进行测试,可得到的结果是调不起微信支付的API。&
& 注意:这一步是坑点之一。在进行测试时我们必须先生成一个程序的keystore文件,然后再按下面的步骤进行才可以顺利地调起微信支付。(这一步在微信支付的开发文档中并没有进行说明)如图所示,生成一个有效的keystore文件的步骤:&
然后将生成的apk文件安装到我们的测试机上,如果我们想通过运行项目把程序安装到我们的测试机上也能调起微信支付,则需按下图所示操作:&
七、将APP 安装到我们的测试机中后,再从 微信支付 | 商户平台中下载应用签名工具,将其安装到测试机上,下面是下载地址&
然后如图所示:&
然后按照微信支付中的开发文档走:
八、有的开发者会在这一步走完后就立即测试支付,结果是没能调起微信支付API,这个原因有可能是设置并保存了应用签名后微信那边的服务器没能那么快地做出处理,在等待了30秒后再进行测试则就可以成功调起微信支付了。
分享到微信二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(3157)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'[原创][已解决]微信支付接口,提示:调用支付jsapi缺少参数: $key0$',
blogAbstract:'[已解决]微信支付接口,提示:调用支付jsapi缺少参数: $key0$最近在做c#微信支付功能。webForm的支付没有问题了。我用了几个小时改成MVC模式。然后在微信调用的时候提示“调用支付jsapi缺少参数: $key0$”下面是 官方给的 帮助文档。\n',
blogTag:'微信支付',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'-1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}开发常见问题选择字号:
开发常见报错及解决方法请参照下表。如非以下报错,参照开发文档未能解决的,请。
小技巧:可能过ctrl+f 进行查找您遇到的问题。
支付返回签名错误
注意签名参数的大小写,支付密钥key要到商户平台设置,设置的规则是32位数字与字母大小写的组合。以下链接为签名过程。(https://pay./wiki/doc/api/jsapi.php?chapter=3_1)
认证后的服务号之间支持跨号支付。
请检查商户号是否错误或支付密钥key设置错误。
redirect——uri参数错误
请进入公众平台-开发者中心,找到填写商户的支付授权域名,填写的就是商户支付授权目录上的域名。
paysinkey如何获取?
新版的微信支付是没有这个paysignkey参数的,具体的参数请查看文档
(https://pay./wiki/doc/api/jsapi.php?chapter=3_1)
mchid是指什么?
MCHID参数指的是商户号
openid的获取请参考文档
openid的获取请参考文档详细介绍
(http://mp./wiki/14/bb4a59c6f71fa0f319c66.html)
openid如何获取?
openid的获取请参考文档查看详细介绍:
(http://mp./wiki/14/bb4a59c6f71fa0f319c66.html)
Appsecret如何获取?
APPsecret参数可进入公众平台(https://mp.)开发者中心查看。
调用报错get_brand_wcpay_request:fail
签名错误,请仔细检查签名。
spbill_create_ip&是指什么?
spbill_create_ip&指的是终端ip,在APP和网页支付提交用户端ip,Native支付填调用微信支付API的机器IP。
“当前公众号没有权限支付本次交易“
检查该公众帐号是否已经获取了支付资格。
“公众帐号支付使用了无效的商户号,无法发起该笔交易”
检查商户号使用错误。
“该公众号支付签名无效,无法发起该笔交易”
调起支付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)$
安卓手机可以收到满送红包 苹果的不行 红包虽然已经显示发送了红包但是实质资金流水没有扣除资金
参数错误,请仔细检查。
调用报错:传输参数错误
推测为提交的支付请求参数不正确;以下文档有详细的参考。https://pay./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
错误返回“-1”
开放平台配置的报名和应用签名是否一致:(android);确认是否使用正式的keystore打包apk并安装调试;(android);提交订单部分需要在服务器端完成。
下单报{"errcode":,"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":,"errmsg
请将商户的APPID和商户号以及报错截图发送至,进行深入了解。
支付返回报错::"errcode":,"errmsg":"您已完成交易接口升级,老接口交易权限已关闭,请使用新接口进行交易。如有疑问请联系微信支付客服咨询"
请将商户的APPID和商户号以及报错截图发送至,进行深入了解。
请求prepayid发生错误:信息[{"errcode":,"errmsg":"鎮ㄥ凡瀹屾垚浜ゆ槗鎺ュ彛鍗囩骇锛岃 鎺ュ彛浜ゆ槗鏉冮檺宸插叧闂?紝璇蜂娇鐢ㄦ柊鎺ュ彛杩涜?浜ゆ槗銆傚?鏈夌枒闂??鑱旂郴寰?俊鏀?粯瀹㈡湇鍜ㄨ?"}]
请将商户的APPID和商户号以及报错截图发送至,进行深入了解。
根据文档下订单,调用微信支付失败。调用微信支付的时候,微信为登录状态则无反应;微信未登录状态,会调用微信登录界面。
请将商户的APPID和商户号以及报错截图+请求参数详情,发送至,进行深入了解。
申请正在审核中,如何可以提前调试测试?
只需要资料审核通过,收到通知邮件即可通过配置测试目录进行联调测试。未审核通过可下载文档进行开发,但不能联调测试。
支付授权目录是什么?
支付授权目录是支付功能正式上线后,商户后台发起支付请求的页面所在的目录。
支付测试目录是什么?
支付测试目录提供给开发者,在开发测试期间使用的临时目录。
支付测试目录和授权目录有何区别?
支付授权目录将会在产品上线审核时,以及上线后长期使用的正式目录;测试目录只能配置白名单,才可以在公众号内发起支付。
如何配置支付目录(授权、测试)?
登录微信公众平台-微信支付-开发配置-修改
支付目录有什么规则?
头部需要包含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”
此情况需要商户将提交的签名过程发送至邮箱:,进行深入了解。
调用报错:“{return_msg=支付权限检查失败, return_code=FAIL}”
此情况需要将提交的xml发送至邮箱:,进行深入了解。
zhgj-2014+中涵国际分销商城及“订单满送红包无法送”
请将商户的APPID和商户号以及报错截图发送至,进行深入了解。
微信支付完成后不能执行回调
请将商户的APPID和商户号以及报错截图发送至,进行深入了解。
报错:不允许跨号支付ios上没这个问题,android上有些商品有这个问题
是否通过订阅号发出此请求,请将APPID,商户号,报错截图及请求参数发送至,进行深入了解。
温馨提示:如以上文档没有您遇到的问题提示及解决方法,请进行提交,谢谢!
以上信息是否已解决您的问题?

我要回帖

更多关于 微信支付接口开发 的文章

 

随机推荐