# [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