request-payment.md 4.2 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3
## uni.requestPayment(options) @requestpayment

<!-- UTSAPIJSON.requestPayment.description -->
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
4

zhaofengliang920817's avatar
zhaofengliang920817 已提交
5 6 7 8 9 10 11 12 13 14 15
uni.requestPayment是一个统一各平台的客户端支付API,客户端均使用本API调用支付。

本API运行在各端时,会自动转换为各端的原生支付调用API。

注意支付不仅仅需要客户端的开发,还需要服务端开发。虽然客户端API统一了,但各平台的支付申请开通、配置回填仍然需要看各个平台本身的支付文档。

比如微信有App支付的申请入口和使用流程,对应到uni-app,在App端要申请微信的App支付。

如果服务端使用[uniCloud](https://uniapp.dcloud.io/uniCloud/README),那么官方提供了[uniPay](https://doc.dcloud.net.cn/uniCloud/uni-pay/uni-app.html)云端统一支付服务,把App、微信小程序、支付宝小程序里的服务端支付开发进行了统一的封装。

前端统一的`uni.requestPayment`和云端统一的`uniPay`搭配,可以极大提升支付业务的开发效率,强烈推荐给开发者使用。`uniPay`的文档另见:[https://doc.dcloud.net.cn/uniCloud/uni-pay/uni-app.html](https://doc.dcloud.net.cn/uniCloud/uni-pay/uni-app.html)
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
16

D
DCloud_LXH 已提交
17 18
<!-- UTSAPIJSON.requestPayment.param -->

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
19 20
### orderInfo参数说明

D
DCloud_LXH 已提交
21
 - 支付宝\
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
22
  App 支付请求参数字符串,主要包含商家的订单信息,key=value 形式,以 & 连接。示例
D
DCloud_LXH 已提交
23 24
  ```
  app_id=2015052600090779&biz_content=%7B%22timeout_express%22%3A%2230m%22%2C%22seller_id%22%3A%22%22%2C%22product_code%
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
25 26 27 28 29
  22%3A%22QUICK_MSECURITY_PAY%22%2C%22total_amount%22%3A%220.02%22%2C%22subject%22%3A%221%22%2C%22body%22%3A%22%E6%88%
  91%E6%98%AF%E6%B5%8B%E8%AF%95%E6%95%B0%E6%8D%AE%22
  %2C%22out_trade_no%22%3A%22314VYGIAGG7ZOYY%22%7D&charset=utf-8&method=alipay.trade.app.pay&sign_type=R
  SA2&timestamp=2016-08-15%2012%3A12%3A15&version=1.0&sign=MsbylYkCzlfYLy9PeRwUUIg9nZPeN9SfXPNavUCroGKR5Kqvx0nEnd3eRmKxJuthNUx4ERCXe552
  EV9PfwexqW%2B1wbKOdYtDIb4%2B7PL3Pc94RZL0zKaWcaY3tSL89%2FuAVUsQuFqEJd
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
30 31
  hIukuKygrXucvejOUgTCfoUdwTi7z%2BZzQ%3D<br>
  ```
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
32
  [更多详情参考[支付宝官方文档](https://opendocs.alipay.com/open/204/105296?pathHash=22ed0058&ref=api)]
D
DCloud_LXH 已提交
33
 -  微信\
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
34
  App 支付请求参数字符串,需要打自定义基座。示例
D
DCloud_LXH 已提交
35 36 37 38 39 40 41 42 43 44
  ```json
  {
   "appid":"wxd569c7238830733b",
   "noncestr":"6N47VnR42bqIm4xq",
   "package":"Sign=WXPay",
   "partnerid":"1230636401",
   "prepayid":"wx26174750316675ac54b89c224eb3250000",
   "timestamp":1711446470,
   "sign":"EE987459B9CFF6462462147130110D31"
  }
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
45
  ```
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
46 47
  [更多详情参考[微信官方文档]( https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1)]

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
48

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
49

D
DCloud_LXH 已提交
50 51
<!-- UTSAPIJSON.requestPayment.returnValue -->

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
52 53 54 55
<!-- UTSAPIJSON.requestPayment.compatibility -->

<!-- UTSAPIJSON.requestPayment.tutorial -->

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
56 57
### cause支付sdk错误码汇总

D
DCloud_LXH 已提交
58
#### 支付宝支付
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
59 60 61 62 63 64 65 66 67 68 69
| 支付宝错误码 | 错误信息 |
|---|---|
| -9000 | 订单支付成功 |
| -8000 | 正在处理中,支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态 |
| -4000 | 订单支付失败 |
| -5000 | 重复请求 |
| -6001 | 用户中途取消 |
| -6002 | 网络连接出错 |
| -6004 | 支付结果未知(有可能已经支付成功),请查询商家订单列表中订单的支付状态 |
|  其它  | 其它支付错误 |

W
wanganxp 已提交
70 71
注意:
- App平台开发支付宝支付,无需自定义基座,真机运行可直接开发
D
DCloud_LXH 已提交
72 73 74
- 可通过编写uts插件判断微信是否安装,如android中可通过引入微信自带的api进行判断

```ts
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
75 76 77 78
   import WXAPIFactory from 'com.tencent.mm.opensdk.openapi.WXAPIFactory';
   let api = WXAPIFactory.createWXAPI(UTSAndroid.getTopPageActivity(), '');
   api!.isWXAppInstalled()
```
D
DCloud_LXH 已提交
79

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
80
- 需要在根目录的manifest.json文件中,对所使用的支付进行配置如
D
DCloud_LXH 已提交
81

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
82
```json
D
DCloud_LXH 已提交
83 84 85 86 87 88 89 90 91 92 93
{
   "app": {
      "distribute": {
         "modules": {
            "uni-payment": {
               "alipay": {},//支付宝支付
               "wxpay": {}//微信支付
            }
         }
      }
   }
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
94
}
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
95 96
```

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
97
[更多详情参考[模块配置](https://doc.dcloud.net.cn/uni-app-x/collocation/manifest-modules.html#uni-payment)]
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
98
- app-android平台微信支付需要4.11及以上版本
WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
99

W
wanganxp 已提交
100

D
DCloud_LXH 已提交
101
<!-- UTSAPIJSON.requestPayment.example -->
D
DCloud_LXH 已提交
102

D
DCloud_LXH 已提交
103 104
<!-- UTSAPIJSON.general_type.name -->

WOSHIMAHAIFENG's avatar
WOSHIMAHAIFENG 已提交
105
<!-- UTSAPIJSON.general_type.param -->