HBuilder 基座已实现H5 plus的支付API,现已集成支付宝快捷支付平台。使用支付功能前必须在支付宝网站开通”快捷支付“服务,并配置服务器生成订单信息。
开发指导
支付流程如下:
plus API使用步骤:
1. 调用plus.payment.getChannels()获取系统支持的支付通道;
2. 调用plus.payment.request()发起支付请求。
示例代码
- var channel=null;
- // 1. 获取支付通道
- function plusReady(){
- // 获取支付通道
- plus.payment.getChannels(function(channels){
- channel=channels[0];
- },function(e){
- alert("获取支付通道失败:"+e.message);
- });
- }
- document.addEventListener('plusready',plusReady,false);
-
- var ALIPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/alipay.php?total=';
- var WXPAYSERVER='http://demo.dcloud.net.cn/helloh5/payment/wxpay.php?total=';
- // 2. 发起支付请求
- function pay(id){
- // 从服务器请求支付订单
- var PAYSERVER='';
- if(id=='alipay'){
- PAYSERVER=ALIPAYSERVER;
- }else if(id=='wxpay'){
- PAYSERVER=WXPAYSERVER;
- }else{
- plus.nativeUI.alert("不支持此支付通道!",null,"捐赠");
- return;
- }
- var xhr=new XMLHttpRequest();
- xhr.onreadystatechange=function(){
- switch(xhr.readyState){
- case 4:
- if(xhr.status==200){
- plus.payment.request(channel,xhr.responseText,function(result){
- plus.nativeUI.alert("支付成功!",function(){
- back();
- });
- },function(error){
- plus.nativeUI.alert("支付失败:" + error.code);
- });
- }else{
- alert("获取订单信息失败!");
- }
- break;
- default:
- break;
- }
- }
- xhr.open('GET',PAYSERVER);
- xhr.send();
- }
复制代码
注:第二步中获取到的订单数据需要在服务器通过支付宝平台获取PID和密钥生成。
HBuilder应用配置
分享插件添加方法具体步骤如下:
1. 双击应用的manifest.json文件,选中“使用第三方插件”
Ctrl+S保存。
支付宝功能申请
- 登录支付宝账号,签约申请“移动快捷支付”功能,操作流程参考:
支付宝帮助中心
- 获取PID,参考教程:
获取合作者身份ID
- 生成密钥(公钥和私钥),并提交到支付宝,参考教程:
生成RSA密钥
上传公钥
服务器生成订单示例(PHP)
参考开源示例代码github-支付宝
C#生成支付宝订单示例
微信支付功能申请
参考开源示例代码
github-微信支付