发起支付请求方法:
plus.payment.request(channel, statement, successCB, errorCB);
这里的 statement 文档是这样描述的:
>channel: ( PaymentChannel ) 必选 支付通道
>指定支付操作的通道,通过getChannels接口获取。
>statement: ( String | JSON | OrderStatementIAP ) 必选 支付订单信息
>支付订单信息,由支付通道定义的数据格式,通常是由业务服务器生成或向支付服务器获取,是经过加密的字符串信息。
>successCB: ( PaymentSuccessCallback ) 必选 请求支付成功回调函数
>请求支付成功时触发,用于返回支付结果。
>errorCB: ( PaymentErrorCallback ) 可选 请求支付失败回调函数
>请求支付失败时触发,用于返回错误信息。
但我不知道 如何得到这个 statement 翻开 官方的例子,也没有对这个详细地描述 只是写了一个地址然后通过这个逻辑服务器返回。但返回的详细内容呢?? 也就是说 他要些什么内容 就拿支付宝来说,statement我应该返回什么东西给它?
官方代码
var channel=null;
// 1. 获取支付通道
function plusReady(){ //uni-app中将此function里的代码放入vue页面的onLoad生命周期中
// 获取支付通道
plus.payment.getChannels(function(channels){
channel=channels[0];
},function(e){
alert("获取支付通道失败:"+e.message);
});
}
document.addEventListener('plusready',plusReady,false);//uni-app不需要此代码
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(); //uni-app中请使用uni的request api联网
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();
}
void plus.payment.request(channel, statement, successCB, errorCB);
1 个回复
f***@ecvinternational.com
statement 是支付订单数据 如(支付宝)我们的后台系统(最好一边看支付宝开发文档一遍坐)调用支付宝的统一下单接口,得到支付宝返回给我的下单数据 这就是我们要返回给前台的参数 statement