微信h5页面支付 为什么无法调起安卓手机支付界面

微信支付如何实现内置浏览器的H5页面支付
作者:荒鱼
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了微信支付如何实现内置浏览器的H5页面支付的相关资料,需要的朋友可以参考下
因为项目需要,要在H5页面中加入微信支付,所以便去尝试,只想说真的很坑,尤其调试起来不方便
这是微信的官方API文档
微信支付的准备工作
申请公众号,申请开通支付,这个很简单,自行百度
申请好之后 在微信公众平台页面的“微信支付”页面中的“开发配置”Tab上配置“支付授权目录”,“测试授权目录”,“测试白名单”
在微信公众平台页面的“开发者中心”中找到“AppID(应用ID)”和“AppSecret(应用密钥)”
在商户平台中找到微信支付分配的商户号,以及自己配置一个商户支付密钥
首先通过微信支付的api 获得支付用的prepay_id,这里需要用到上面提到的“AppID(应用ID)”,“AppSecret(应用密钥)”,“微信支付分配的商户号”,“商户支付密钥”以及其他的一些参数(具体参照微信开发文档)用MD5加密成签名(第一次签名)获得prepay_id后,用prepay_id和一些其他参数(具体参照微信开发文档)用MD5加密成签名(第二次签名)然后在前端通过微信内置浏览器提供的js API,WeixinJSBridge.invoke来调用微信支付的弹出页面,这里需要用到上面的第二次的签名
具体代码如下
$.get('/xxx',function(data){
if(data && data !== ""){
var _data = $.parseJSON(data)[0];
if(parseInt(_data.userAgent) & 5){
alert('您的微信版本低于5.0,无法使用微信支付!');
WeixinJSBridge.invoke('getBrandWCPayRequest',{
'appId': _data.appId,
'timeStamp': _data.timeStamp,
'nonceStr': _data.nonceStr,
'package': 'prepay_id=' + _data.packageOne,
'signType': _data.signType,
'paySign': _data.paySign
},function(res){
if(res.err_msg === 'get_brand_wcpay_request:ok'){
alert('支付成功,返回订单列表!');
}else if(res.err_msg === 'get_brand_wcpay_request:cancel'){
alert('取消支付!');
几个容易失败点需要注意
支付链接和在开发平台配置的链接不匹配
总共需要2次签名,并且所需的参数是不同的,在JS中用到的签名是第二次签名,不要混淆参数传递的不能有错
如果body中有中文需要转义其中还有一些问题没有完全解决,就是位置支付没有一个判断失效的时间,如果在微信支付的弹出层停留时间太久了,可能这个订单在我们网站上已经失效了,可在微信支付中仍然能支付成功,如果有高人知道这个问题怎么解决的,希望能告诉解决办法
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金电商旺铺用他们在大促卖卖卖?
微信支付3.7
H5 网页端调起支付接口
有相似问题想解决?专业顾问来帮助您
匹配服务商
选择服务商,签单
服务商工作
验收并付款
已投标服务商
综合评分:5颗星
速度:4.80
服务:4.77
态度:4.83
好评率:93.33%
共有1个服务商参与报价,查看更多服务商报价
参与报价,开始赚钱
提交你的报价和方案
中标后交付作品
获得任务赏金
极速:10分钟急速响应
高品质:精选服务商提供服务
放心:不满意可退款
根据浏览的需求为您推荐
交易成功的需求
关注猪八戒微信| 502: 无效网关
-- Event ID: d664c
如果您是网站管理员,点击查看。如需网站监控,可以使用。
您的浏览器
百度云加速网页支付(公众号)常见问题选择字号:
网页支付JSAPI即公众号支付是用户在微信中打开商户的H5页面,商户在H5页面通过调用微信支付提供的JSAPI接口调起微信支付模块完成支付。
应用场景有:
1、用户在微信公众账号内进入商家公众号,打开某个主页面,完成支付。
2、用户的好友在朋友圈、聊天窗口等分享商家页面连接,用户点击链接打开商家页面,完成支付。
3、将商户页面转换成二维码,用户扫描二维码后在微信浏览器中打开页面后完成支付 。
网页支付(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)$
安卓手机可以收到满送红包 苹果的不行 红包虽然已经显示发送了红包但是实质资金流水没有扣除资金
参数错误,请仔细检查。
调用报错:传输参数错误
推测为提交的支付请求参数不正确;以下文档有详细的参考。https://pay./wiki/doc/api/jsapi.php?chapter=7_7
调用报错:没有获取到微信支付预支付ID,请管理员检查微信支付配置项
需要按照文档要求 ,先获取prepay_id。
支付权限检查失败
商户所用的参数对应的APPID是APP支付;如果商户想要JSAPI支付,需要在公众平台申请公众号,公众号支付中才有此参数。
都适用与哪些场景?展开收起
以上信息是否已解决您的问题?
关注微信公众号向微信客服提问
解决微信、微信支付、手游等产品问题
关注手Q公众号
解决QQ、手Q钱包等产品问题
腾讯服务热线
解决微信/QQ帐号安全、金融支付、会员、视频、空间、软件等问题
微信支付、理财通专线
解决微信支付红包、转账、提现、商户、理财通等问题
财付通、手Q钱包专线
解决财付通消费、手Q钱包等问题
为了快速解决您的问题,建议优先使用腾讯客服公众号或QQ在线客服。
微信端公众号
QQ端公众号

我要回帖

 

随机推荐