app-payment-paypal.md 3.0 KB
Newer Older
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
1 2
#### 开通
[paypal开通文档](https://uniapp.dcloud.io/app-payment-paypal-open)
DCloud-yyl's avatar
DCloud-yyl 已提交
3

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
4
#### 配置
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
5
在manifest.json文件“App模块配置”项的“Payment(支付)”下,勾选“paypal支付”项并配置相关参数
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
6
![](https://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/payment/paypal_setup_manifest_info.png)
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
7 8
配置说明:returnURL必须为paypal开发者中心配置的returnURL,否则无法调起支付

DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
9
#### 服务器生成订单
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
10
通过服务器生成支付订单并获取orderId(服务器获取订单信息详见[paypal API](https://developer.paypal.com/docs/api/orders/v2/)) 
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
11 12

#### 应用内发起支付
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
13
应用中调用支付功能(支付参数如下)
DCloud-yyl's avatar
DCloud-yyl 已提交
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
    
| 参数名称    | 参数说明 | 必须 | 
|-------------|-------|-----|
| clientId    | 客户端id(获取方式详见paypal开通文档) | 是  |
| orderId     | 订单id  | 是 | 
| environment | 运行环境(sandbox/live) |是 |
| userAction  | 按钮样式(paynow/continue)  | 否 |
| currency    | [币种](https://developer.paypal.com/docs/api/reference/currency-codes/) (必须大写)   | 否 |

  * uni-app项目示例
``` js
uni.getProvider({
   service: 'payment',
   success: function (res) {
     console.log(res.provider)
     if (~res.provider.indexOf('paypal')) {
       uni.requestPayment({
         "provider": "paypal", 
         "orderInfo": {
             "clientId": clientId, //客户端id
             "orderId": orderId,//订单id
             "userAction":"continue",//  paynow/continue
             "currency":"USD",//币种  
             "environment":"sandbox",//运行环境 sandbox/live
         },
         success: function (res) {
           var rawdata = JSON.parse(res.rawdata);
           console.log("orderId:" + rawdata.orderId);
         },
         fail: function (err) {
           console.log('fail:' + JSON.stringify(err));
         }
       })
     }
   }
});
```
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
51
  * 5+App项目示例
DCloud-yyl's avatar
DCloud-yyl 已提交
52
``` js
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
    //获取支付渠道
    var paypalSev = null;
    plus.payment.getChannels(function(channels) {
      for (var i in channels) {
        var channel = channels[i];
        if (channel.id === 'paypal') {
          paypalSev = channel;
        }
    	}
    }, function(e) {
    	console.log("获取支付渠道失败:" + e.message);
    });
    //发起支付
    var statement = {
        "clientId": clientId, //客户端id
        "orderId": orderId,//订单id
        "userAction":"continue",//  paynow/continue
        "currency":"USD",//币种  
        "environment":"sandbox",//运行环境 sandbox/live
    };
    plus.payment.request(this.paypalSev, statement, function(result) {
        var rawdata = JSON.parse(result.rawdata);
        console.log("orderId:" + rawdata.orderId);
    }, function(e) {
        console.log("支付失败:" + e.message);
    });
DCloud-yyl's avatar
DCloud-yyl 已提交
79
```
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
80 81

#### 服务器授权
DCloud_iOS_WZT's avatar
DCloud_iOS_WZT 已提交
82
应用发起支付完成后,返回订单id,服务器捕获或授权订单[详见paypal API](https://developer.paypal.com/docs/api/orders/v2/)
DCloud-yyl's avatar
DCloud-yyl 已提交
83