h5builder php,PHP+HBuilder基础上调用微信App支付

HBuilder基座已实现H5 plus的支付API,现已集成支付宝快捷支付平台。使用支付功能前必须在支付宝网站开通”快捷支付“服务,并配置服务器生成订单信息。

使用微信支付功能需到微信开放平台申请移动应用并开通支付功能微信APP支付接入商户服务中心申请应用后可以获取AppID和AppSecret值。

说明:Thinkphp框架下,将下载好的微信文件夹放置在如下图的文件夹下,配置不做多介绍

QQ%E6%88%AA%E5%9B%BE20200209150519.png

常见的几种错误类型

1 、 微信支付注意事项:

{“code”:-100,”message”:”[payment微信:-1]General errors”}

以上错误码-100是5+SDK的错误码,而-1为微信支付SDK的错误码,对应的微信的错误类型为:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。

根据错误提示我们逐步排除。

2 、 登记的包名或签名错误

核对微信后台登记的应用包名以及应用签名是否有误,登记的签名需要和签名工具获取到的一致,更新这些信息并非马上生效,可以等一段时间再测试。另外需要确保应用已经通过审核,并获得支付权限。

3 、 APPID错误

核对项目中manifest.json文件中填写的微信支付的AppID是否和平台上的一致。

4 、 付款信息计算错误

核对后端代码,查验调起支付接口的逻辑是否有误,并确保两次签名生成算法一致。

5 、 H5+接口调用错误

接口plus.payment.request调用时传入的支付信息是字符串类型,如:官方返回数据地址是:

http://demo.dcloud.net.cn/payment/wxpayv3.HBuilder/?total=1

返回数据如下是个json_encode的数组

{"appid":"wx0411fa6a39d61297","noncestr":"5v5efv7JKmDGv91X","package":"Sign=WXPay","partnerid":"1230636401","prepayid":"wx28170035285029c12927cdc40885888318","timestamp":1545987635,"sign":"56A6442588EB590F57EF48F2EC104DE9"}

微信支付 测试一定要打包,并且签名才能调起来的!!! 敲黑板划重点……….

plus API具体使用步骤:

1、调用plus.payment.getChannels()获取系统支持的支付通道;

2、调用plus.payment.request()发起支付请求。

前端示例代码

var channel=null;aliChannel=null;wxChannel =null;

// 第一步. 获取支付通道

function plusReady(){

plus.payment.getChannels(function(channels){

channel=channels[0];

},function(e){

alert("获取支付通道失败:"+e.message);

});

plus.payment.getChannels(function(channels){

for(var i=0;i

if(channels[i].id == 'alipay'){

aliChannel=channels[i];

}else if(channels[i].id == 'wxpay'){

wxChannel=channels[i];

}

}

},function(e){

alert("获取支付通道失败:"+e.message);

});

}

document.addEventListener('plusready',plusReady,false);

var ALIPAYSERVER='https://xxxxx/pay/Order/order_alipayapp.html?id=';//支付宝

var WXPAYSERVER ='https://xxxxx/pay/Order/order_wxapppay.html?id=';

// 2. 发起支付请求->从服务器请求支付订单

function pay(payway){

var id = $('#id').val();

var PAYSERVER='';

if(payway =='alipay'){

PAYSERVER=ALIPAYSERVER+id;

channel = aliChannel;

}else if(payway =='wxpay'){

PAYSERVER=WXPAYSERVER+id;

channel = wxChannel;

}else{

plus.nativeUI.alert("不支持此支付通道!",null,"XXX");

return;

}

$.ajax({

url:PAYSERVER,

type:'get',

dataType:'json',

data:'',

}).done(function(msg){

if(msg.status == 1){

plus.payment.request(channel,msg.content,function(result){

plus.nativeUI.alert("支付成功!",function(){

location.href = 'user.html';

});

},function(error){

plus.nativeUI.alert("支付失败");

});

}else{

plus.nativeUI.alert(msg.content);

}

});

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值