# [payment]()
Payment模块管理支付功能,用于提供网页安全支付能力,支持通过Web接口进行支付操作。通过plus.payment可获取支付管理对象。
### 方法:
- [getChannels](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.getChannels): 获取支付通道
- [request](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.request): 请求支付操作
### 对象:
- [PaymentChannel](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel): 支付通道对象
- [PaymentResult](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult): 支付操作结果对象
### 回调方法:
- [ChannelsSuccessCallback ](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.ChannelsSuccessCallback%20): 获取支付通道成功回调
- [PaymentSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentSuccessCallback): 支付操作成功回调
- [PaymentErrorCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentErrorCallback): 支付操作失败回调
### 权限:
permissions
~~~
"Payment": {
"description": "访问支付插件"
}
~~~
# [getChannels]()
获取支付通道
~~~
void plus.payment.getChannels( successCB, errorCB );
~~~
### 说明:
在进行支付操作前需获取终端支持的支付通道列表,用于提示用户进行选择。获取支付通道成功后通过successCB回调返回支持的所有通道列表,获取支付通道列表失败则通过errorCB回调返回。
### 参数:
- successCB: *( [ChannelsSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.ChannelsSuccessCallback) ) 必选 *获取支付通道成功回调函数
获取支付通道列表成功时的回调函数,用于返回终端支持的支付通道列表。
- errorCB: *( [PaymentErrorCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentErrorCallback) ) 可选 *获取支付通道失败回调函数
获取支付通道列表失败时的回调函数,用于返回错误信息。
### 返回值:
void : 无
### 示例:
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Payment Example</title>
<script type="text/javascript">
var channels=null;
// 监听plusready事件
document.addEventListener( "plusready", function(){
// 扩展API加载完毕,现在可以正常调用扩展API
plus.payment.getChannels( function(s){
channels = s;
}, function(e){
alert( "获取支付通道列表失败:"+e.message );
} );
}, false );
</script>
</head>
<body>
</body>
</html>
~~~
# [request]()
请求支付操作
~~~
void plus.payment.request( channel, statement, successCB, errorCB );
~~~
### 说明:
调用指定的支付通道进行支付操作,其中statement包含支付操作的相关信息,支付模块将弹出支付界面供用户进行支付信息的输入确认操作。用户支付操作成功后通过successCB回调返回支付操作结果,支付操作失败则通过errorCB回调返回。
### 参数:
- channel: *( [PaymentChannel](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel) ) 必选 *支付通道
指定支付操作的通道,通过getChannels接口获取。
- statement: *( DOMString | JSON ) 必选 *支付订单信息
支付订单信息,由支付通道定义的数据格式,通常是由业务服务器生成或向支付服务器获取,是经过加密的字符串信息。
- successCB: *( [PaymentSuccessCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentSuccessCallback) ) 必选 *获取支付通道成功回调函数
获取支付通道列表成功时的回调函数,用于返回终端支持的支付通道列表。
- errorCB: *( [PaymentErrorCallback](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentErrorCallback) ) 可选 *获取支付通道失败回调函数
获取支付通道列表失败时的回调函数,用于返回错误信息。
### 返回值:
void : 无
### 示例:
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Payment Example</title>
<script type="text/javascript">
var channels=null;
// 监听plusready事件
document.addEventListener( "plusready", function(){
// 扩展API加载完毕,现在可以正常调用扩展API
plus.payment.getChannels( function(s){
channels = s;
}, function(e){
alert( "获取支付通道列表失败:"+e.message );
} );
}, false );
// 请求支付操作
function requestPay( c ) {
// 必须从业务服务器获取支付信息
var statement = "...";
plus.payment.request( c, statement, function(){
alert( "支付操作成功!" );
}, function(e){
alert( "支付失败:"+e.message );
} );
}
</script>
</head>
<body>
</body>
</html>
~~~
# [PaymentChannel]()
支付通道对象
~~~
interface plus.payment.PaymentChannel {
attribute DOMString id;
attribute DOMString description;
attribute Boolean serviceReady;
function void installService();
}
~~~
### 说明:
PaymentChannel对象表示特定的支付通道,用于向系统请求支付操作。
### 属性:
- [id](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel.id): 支付通道标识
- [description](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel.description): 支付通道描述
- [serviceReady](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel.serviceReady): 支付通道服务是否安装
### 方法:
- [installService](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel.installService): 安装支付通道依赖的服务
# [id]()
支付通道标识
### 说明:
DOMString 类型 只读属性
用于标识支付通道,如“alipay”表示支付宝、“tenpay”表示微信支付、“unionpay”表示银联支付。
# [description]()
支付通道描述
### 说明:
DOMString 类型 只读属性
支付通道的描述信息,如“支付宝”、“微信支付”、“银联”。
# [serviceReady]()
支付通道服务是否安装
### 说明:
Boolean 类型 只读属性
通常特定的支付通道依赖系统安装相关的服务,此属性用于标识其服务是否安装,如果没有安装则为false,否则为true。 如果系统没有安装相关的服务,则可能导致调用支付操作失败,这是需要调用installService方法进行安装。
### 平台支持:
- Android - 2.2+ (支持): 支付宝:如果已经安装“支付宝快捷支付服务”则返回true,否则返回false。
- iOS - 5.0+ (支持): 支付宝:无法判断是否安装“快捷支付”应用,固定返回true,在调用plus.payment.request请求支付操作时会自动提示。
# [installService]()
安装支付通道依赖的服务
~~~
void pay.installService();
~~~
### 说明:
对于某些支付通道,通常特定的支付通道依赖系统安装相关的服务,调用此方法将安装其依赖的支付服务。如支付宝,则在系统中安装支付宝客户端程序。
### 参数:
无
### 返回值:
void : 无
### 平台支持:
- Android - 2.2+ (支持): 支付宝:调用系统程序安装“支付宝快捷支付服务”。
- iOS - 5.0+ (支持): 支付宝:打开Appstore的“快捷支付”应用页面。
### 示例:
~~~
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>Payment Example</title>
<script type="text/javascript">
var channels=null;
// 监听plusready事件
document.addEventListener( "plusready", function(){
// 扩展API加载完毕,现在可以正常调用扩展API
plus.payment.getChannels( function(s){
channels = s;
}, function(e){
alert( "获取支付通道列表失败:"+e.message );
} );
}, false );
// 请求支付操作
function requestPay( c ) {
// 必须从业务服务器获取支付信息
var statement = "...";
if ( !c.serviceReady ) {
c.installService();
}
plus.payment.request( c, statement, function(){
alert( "支付操作成功!" );
}, function(e){
alert( "支付失败:"+e.message );
} );
}
</script>
</head>
<body>
</body>
</html>
~~~
# [PaymentResult]()
支付操作结果对象
~~~
interface plus.payment.PaymentResult {
attribute PaymentChannel channel;
attribute DOMString tradeno;
attribute DOMString description;
attribute DOMString url;
attribute DOMString signature;
}
~~~
### 说明:
PaymentResult对象表示支付操作返回结果,用于确认支付操作成功。
### 属性:
- [channel](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult.channel): 支付通道对象
- [tradeno](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult.tradeno): 支付交易编号信息
- [description](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult.description): 交易描述信息
- [url](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult.url): 查找支付交易信息地址
- [signature](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult.signature): 支付操作指纹信息
# [channel]()
支付通道对象
### 说明:
[PaymentChannel](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentChannel) 类型 只读属性
用于发起支付操作的支付通道对象。
# [tradeno]()
支付交易编号信息
### 说明:
String 类型 只读属性
# [description]()
交易描述信息
### 说明:
Boolean 类型 只读属性
# [url]()
查找支付交易信息地址
### 说明:
Boolean 类型 只读属性
# [signature]()
支付操作指纹信息
### 说明:
String 类型 只读属性
用于向支付服务器查询支付订单信息。
# [ChannelsSuccessCallback ]()
获取支付通道成功回调
~~~
void ChannelsSuccessCallback ( channels ) {
// Get payment channels success code
}
~~~
### 说明:
当获取支付通道列表成功时的回调函数,用于返回终端支持的支付通道列表。
### 参数:
- channels: *( Array ) 必选 *数组,系统支持的支付通道PaymentChannel列表
### 返回值:
void : 无
# [PaymentSuccessCallback]()
支付操作成功回调
~~~
void PaymentSuccessCallback ( result ) {
// Payment success code
}
~~~
### 说明:
当支付操作成功时的回调函数,用于返回支付操作的成功信息。
### 参数:
- result : *( [PaymentResult](http://www.dcloud.io/docs/api/zh_cn/payment.shtml#plus.payment.PaymentResult) ) 必选 *支付操作成功的信息
### 返回值:
void : 无
# [PaymentErrorCallback]()
支付操作失败回调
~~~
void PaymentErrorCallback( error ) {
// Payment error code
}
~~~
### 说明:
当支付操作失败时的回调函数,用于返回支付操作失败的错误信息。
### 参数:
- error: *( DOMException ) 必选 *支付操作失败错误信息,可通过error.code获取错误代码
支付错误代码如下: 62000,客户端未安装支付通道依赖的服务; 62001,用户取消支付操作; 62002,此设备不支持支付; 62003,数据格式错误; 62004,支付账号状态错误; 62005,订单信息错误; 62006,支付操作内部错误; 62007,支付服务器错误; 62008,网络问题引起的错误; 62009,其它未定义的错误。
### 返回值:
void : 无
- API参考
- Accelerometer
- Audio
- Camera
- Contacts
- Device
- Downloader
- Events
- Gallery
- Geolocation
- IO
- Key
- Messaging
- NativeUI
- Navigator
- Orientation
- Proximity
- SplashScreen
- Storage
- UI
- Uploader
- InterfaceOrientation
- Runtime
- WebView
- XMLHttpRequest
- Zip
- Plugins
- Barcode
- Maps
- Payment
- Push
- Share
- Speech
- Statistic
- Native.js
- Android
- iOS