Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
3cd984a9
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
3cd984a9
编写于
9月 22, 2022
作者:
C
chenruilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
新增 微信支付V3版本接口
上级
2f32d2f9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
107 addition
and
73 deletion
+107
-73
docs/uniCloud/unipay.md
docs/uniCloud/unipay.md
+107
-73
未找到文件。
docs/uniCloud/unipay.md
浏览文件 @
3cd984a9
...
...
@@ -44,23 +44,44 @@ const unipay = require('@dcloudio/unipay')
## 初始化@init
进行初始化操作返回 unipay 实例
### 微信支付V3
> 新增于 ```uni-pay 1.1.0```
### 微信支付
**入参说明**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|:-------------------:| :-----: |:---:|:----------------:|:----------------------------:|
| appId | String | 是 | - | 当前应用在对应支付平台的 appId |
| mchId | String | 是 | - | 商户号 |
| v3Key | String | 是 | - | API v3 密钥 |
| appCertPath | String | 是 | - | 商户 API 证书 |
| appPrivateKeyPath | String | 是 | - | 商户 API 私钥 |
| timeout | Number | 否 | 5000 | 请求超时时间,单位:毫秒 |
```
js
const
unipayIns
=
unipay
.
initWeixinV3
({
appId
:
'
your appId
'
,
mchId
:
'
your mchId
'
,
v3Key
:
'
you parterner key
'
,
appCertPath
:
path
.
resolve
(
'
/path/to/you/cert
'
),
appPrivateKeyPath
:
path
.
resolve
(
'
/path/to/you/privateKey
'
)
})
```
### 微信支付v2
**入参说明**
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
| :--------:| :-----: | :----:| :--------------------------------------------------:| :------------------------------------: |
| appId | String | 是 | - | 当前应用在对应支付平台的 appId |
| mchId | String | 是 | - | 商户号 |
| subAppId| String | 否 | - | 子商户appId |
| subMchId| String | 否 | - | 子商户号 |
| key | String | 是 | - | 支付商户 key (API密钥) |
| pfx | String
|
Buffer| 使用退款功能必填|- | 微信支付商户 API 证书,主要用于退款 |
| timeout | Number | 否 | 5000 | 请求超时时间,单位:毫秒 |
| signType | String | 否 | MD5 | 签名类型 |
| sandbox | Boolean | 否 | false | 是否启用沙箱环境 |
| clientType| String | 否 | 默认自动获取客户端类型,同
`context`
内的
`PLATFORM`
| 客户端类型,主要用于返回客户端支付参数 |
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|:---------:| :-----: | :----:|:-----------------:|:----------------------------:|
| appId | String | 是 | - | 当前应用在对应支付平台的 appId |
| mchId | String | 是 | - | 商户号 |
| subAppId | String | 否 | - | 子商户appId |
| subMchId | String | 否 | - | 子商户号 |
| key | String | 是 | - | 支付商户 key (API密钥) |
| pfx | String
|
Buffer| 使用退款功能必填| - | 微信支付商户 API 证书,主要用于退款 |
| timeout | Number | 否 | 5000 | 请求超时时间,单位:毫秒 |
| signType | String | 否 | MD5 | 签名类型 |
| sandbox | Boolean | 否 | false | 是否启用沙箱环境 |
```
js
const
unipayIns
=
unipay
.
initWeixin
({
...
...
@@ -96,7 +117,6 @@ const unipayIns = unipay.initWeixin({
| timeout | Number | 否 | 5000 | 请求超时时间,单位:毫秒 |
| signType | String | 否 | RSA2 | 签名类型 |
| sandbox | Boolean | 否 | false | 是否启用沙箱环境 |
| clientType | String | 否 | 默认自动获取客户端类型,同
`context`
内的
`PLATFORM`
| 客户端类型,主要用于返回客户端支付参数|
| alipayRootCertPath | String | 否 | - |
`1.0.6+`
,支付宝根证书文件路径 |
| appCertPath | String | 否 | - |
`1.0.6+`
,应用公钥证书文件路径 |
| alipayPublicCertPath| String | 否 | - |
`1.0.6+`
,支付宝公钥证书文件路径 |
...
...
@@ -154,8 +174,8 @@ const unipayIns = unipay.initAppleIapPayment({
| outTradeNo | String|必填 | - |商户订单号,有长度限制(微信支付为32字符以内,支付宝为64字符以内)、只能包含字母、数字、下划线;需保证在商户端不重复| |
| totalFee | Number|必填 | - |订单金额,单位:分 | 支付宝小程序、微信小程序|
| notifyUrl | String|必填 | - |支付结果通知地址,
**需要注意支付宝支付时退款也会通知到此地址,务必处理好自己的业务逻辑**
| |
| tradeType | String|非小程序支付、App支付时必填 | - |
`1.0.6+`
交易类型,见下方tradeType的说明 |- |
| spbillCreateIp| String|必填 | - |客户端IP,云函数内可以通过
`context.CLIENTIP`
获取 |- |
| tradeType | String | 是 | - | 交易类型;见下方 tradeType 的说明 |
| sceneInfo | Object|微信tradeType为MWEB时必填 | - |见下方sceneInfo的说明 |- |
**tradeType的说明**
...
...
@@ -254,16 +274,16 @@ uniCloud.callFunction({
**返回值说明**
| 参数名 | 类型 |说明 |
支持平台
|
| :----------------:| :----:| :---------------------------------------------: |
:
------:|
| appId | String|平台分配的应用 ID |
微信支付
|
| mchId | String|商户号,(微信支付文档里面叫商户号:mch_id,支付宝支付叫卖家id:seller_id)|
微信支付
|
| outTradeNo | String|商户订单号 |
-
|
| transactionId | String|平台订单号 |
-
|
| tradeState | String| 订单状态,见下方订单状态说明 |
|
| totalFee | Number|标价金额 ,单位:分 |
-
|
| settlementTotalFee| Number|应结订单金额,单位:分 |
-
|
| cashFee | Number|现金支付金额,单位:分 |
-
|
| 参数名 | 类型 |说明 |
支持平台
|
| :----------------:| :----:| :---------------------------------------------: |
:-
------:|
| appId | String|平台分配的应用 ID |
微信支付
|
| mchId | String|商户号,(微信支付文档里面叫商户号:mch_id,支付宝支付叫卖家id:seller_id)|
微信支付
|
| outTradeNo | String|商户订单号 |
-
|
| transactionId | String|平台订单号 |
-
|
| tradeState | String| 订单状态,见下方订单状态说明 |
|
| totalFee | Number|标价金额 ,单位:分 |
-
|
| settlementTotalFee| Number|应结订单金额,单位:分 |
支付宝支付
|
| cashFee | Number|现金支付金额,单位:分 |
-
|
**订单状态**
...
...
@@ -313,11 +333,11 @@ exports.main = async function (event) {
**返回值说明**
| 参数名 | 类型 | 说明 | 支持平台 |
| :-----------: | :----: | :---------------: |
:--------:
|
| appId | String | 平台分配的应用 ID |
微信支付
|
| mchId | String | 商户号 |
微信支付
|
| outTradeNo | String | 商户订单号 | 支付宝支付 |
| transactionId | String | 平台订单号 | 支付宝支付 |
| :-----------: | :----: | :---------------: |
:------:
|
| appId | String | 平台分配的应用 ID |
微信支付V2
|
| mchId | String | 商户号 |
微信支付V2
|
| outTradeNo | String | 商户订单号 | 支付宝支付
|
| transactionId | String | 平台订单号 | 支付宝支付
|
**使用示例**
...
...
@@ -373,16 +393,16 @@ exports.main = async function (event) {
**入参说明**
| 参数名 | 类型 |
必填 | 默认值| 说明 | 支持平台
|
| :-----------: | :----:|
:--------------------------: | :----:| :----------: | :------:
|
| outTradeNo | String|
和 transactionId 二选一 | - | 商户订单号 | -
|
| transactionId | String|
和 outTradeNo 二选一 | - | 平台订单号 | -
|
| outRefundNo | String|
微信支付必填,支付宝支付选填 | - | 商户退款单号 | -
|
| totalFee | Number|
微信支付必填 | - | 订单总金额 | -
|
| refundFee | Number|
必填 | - | 退款总金额 | 微信支付
|
| refundFeeType | String|
选填 | - | 货币种类 | -
|
| refundDesc | String|
选填 | - | 退款原因 | -
|
| notifyUrl | String|
微信支付选填,支付宝不支持 | - | 退款通知 url,支付宝会通知获取支付参数时的通知地址| 微信支付
|
| 参数名 | 类型 |
必填 | 默认值| 说明 | 支持平台
|
| :-----------: | :----:|
:---------------------:| :----:| :----------: |:------:
|
| outTradeNo | String|
和 transactionId 二选一 | - | 商户订单号 | -
|
| transactionId | String|
和 outTradeNo 二选一 | - | 平台订单号 | -
|
| outRefundNo | String|
微信支付必填,支付宝支付选填 | - | 商户退款单号 | -
|
| totalFee | Number|
微信支付必填 | - | 订单总金额 | -
|
| refundFee | Number|
必填 | - | 退款总金额 | 微信支付
|
| refundFeeType | String|
微信支付V3必填 | - | 货币种类 | 微信支付V3
|
| refundDesc | String|
选填 | - | 退款原因 | -
|
| notifyUrl | String|
微信支付选填,支付宝不支持 | - | 退款通知 url,支付宝会通知获取支付参数时的通知地址| 微信支付
|
**返回值说明**
...
...
@@ -415,13 +435,13 @@ exports.main = async function (event) {
**入参说明**
| 参数名 | 类型 |
必填
| 默认值 | 说明 | 支持平台 |
| :-----------: | :----: |
:-------------------------------------------:
| :----: | :--------------------------------------------------------------------------------: | :------: |
| outTradeNo | String | 微信支付四选一,支付宝和 transactionId 二选一 | - | 商户订单号 | - |
| transactionId | String |
微信支付四选一,支付宝和 outTradeNo 二选一
| - | 平台订单号 | - |
| outRefundNo | String |
微信支付四选一,支付宝必填
| - | 商户退款单号 | - |
| refundId | String |
微信支付
四选一 | - | 平台退款单号 | 微信支付 |
| offset | Number | 微信支付选填 | - | 偏移量,当部分退款次数超过 10 次时可使用,表示返回的查询结果从这个偏移量开始取记录 | - |
| 参数名 | 类型 |
必填
| 默认值 | 说明 | 支持平台 |
| :-----------: | :----: |
:-----------------------------------------:
| :----: | :--------------------------------------------------------------------------------: | :------: |
| outTradeNo | String | 微信支付
V3必填,微信支付V2
四选一,支付宝和 transactionId 二选一 | - | 商户订单号 | - |
| transactionId | String |
微信支付V2四选一,支付宝和 outTradeNo 二选一
| - | 平台订单号 | - |
| outRefundNo | String |
微信支付V2四选一,支付宝必填
| - | 商户退款单号 | - |
| refundId | String |
微信支付V2
四选一 | - | 平台退款单号 | 微信支付 |
| offset | Number | 微信支付
V2
选填 | - | 偏移量,当部分退款次数超过 10 次时可使用,表示返回的查询结果从这个偏移量开始取记录 | - |
**注意**
...
...
@@ -429,16 +449,16 @@ exports.main = async function (event) {
**返回值说明**
| 参数名 | 类型 |
说明 |
支持平台 |
| :------------: | :-----------------------------: |
:--------------------------: | :--------:
|
| outTradeNo | String |
商户订单号 | -
|
| transactionId | String |
平台订单号 | -
|
| totalFee | Number |
订单金额 | -
|
| refundId | String |
平台退款单号,仅支付宝返回 | -
|
| refundFee | Number |
退款总金额 | -
|
| refundDesc | String |
退款理由 | -
|
| refundList | Array
<
refundItem
>
|
分笔退款信息,仅微信支付返回 | 微信支付
|
| refundRoyaltys | Array
<
refundRoyaltysItem
>
|
退分账明细信息,仅支付宝返回
| 支付宝支付 |
| 参数名 | 类型 |
说明 |
支持平台 |
| :------------: | :-----------------------------: |
:--------------------:|:-----:
|
| outTradeNo | String |
商户订单号 | -
|
| transactionId | String |
平台订单号 | -
|
| totalFee | Number |
订单金额 | -
|
| refundId | String |
平台退款单号,仅支付宝、微信支付V3返回 | -
|
| refundFee | Number |
退款总金额 | -
|
| refundDesc | String |
退款理由 | -
|
| refundList | Array
<
refundItem
>
|
分笔退款信息,仅微信支付V2返回 | 微信支付V2
|
| refundRoyaltys | Array
<
refundRoyaltysItem
>
|
退分账明细信息,仅支付宝返回
| 支付宝支付 |
**refundItem 说明**
...
...
@@ -503,7 +523,7 @@ exports.main = async function (event) {
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 支持平台 |
| :------: | :----: | :--: | :----: | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------: |
| billDate | String | 必填 | - | 下载对账单的日期,格式:2014
06
03 | - |
| billDate | String | 必填 | - | 下载对账单的日期,格式:2014
-06-
03 | - |
| billType | String | 选填 | ALL | ALL(默认值),返回当日所有订单信息(不含充值退款订单),SUCCESS,返回当日成功支付的订单(不含充值退款订单),REFUND,返回当日退款订单(不含充值退款订单),RECHARGE_REFUND,返回当日充值退款订单 | - |
**返回值说明**
...
...
@@ -564,7 +584,7 @@ exports.main = async function (event) {
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 支持平台 |
| :---------: | :----: | :--: | :----: | :---------------------------------------------------------------------: | :------: |
| billDate | String | 必填 | - | 下载对账单的日期,格式:2014
06
03 | - |
| billDate | String | 必填 | - | 下载对账单的日期,格式:2014
-06-
03 | - |
| accountType | String | 选填 | Basic | 账单的资金来源账户:Basic 基本账户,Operation 运营账户,Fees 手续费账户 | - |
**返回值说明**
...
...
@@ -640,16 +660,30 @@ exports.main = async function (event) {
let
res
=
await
unipayIns
.
verifyPaymentNotify
(
event
)
// 处理完毕其他业务
// 注意如果处理成功需要严格按照下面的格式进行返回,否则厂商会持续通知
// 微信处理成功之后
return
{
statusCode
:
200
,
headers
:
{
'
content-type
'
:
'
text/xml;charset=utf-8
'
},
body
:
`<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>`
// 微信支付V3处理成功之后
return
{
mpserverlessComposedResponse
:
true
,
statusCode
:
200
,
headers
:
{
'
content-type
'
:
'
application/json
'
},
body
:
JSON
.
stringify
({
code
:
'
SUCCESS
'
,
message
:
'
成功
'
})
}
// 微信支付V2处理成功之后
return
{
mpserverlessComposedResponse
:
true
,
statusCode
:
200
,
headers
:
{
'
content-type
'
:
'
text/xml;charset=utf-8
'
},
body
:
`<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>`
}
// 支付宝处理成功后
return
{
return
{
mpserverlessComposedResponse
:
true
,
statusCode
:
200
,
headers
:
{
'
content-type
'
:
'
text/plain
'
...
...
@@ -694,8 +728,8 @@ exports.main = async function (event) {
let
res
=
await
unipayIns
.
verifyRefundNotify
(
event
)
// 注意如果处理成功需要严格按照下面的格式进行返回,否则厂商会持续通知
// 微信处理成功之后
return
{
"
mpserverlessComposedResponse
"
:
true
,
return
{
mpserverlessComposedResponse
:
true
,
statusCode
:
200
,
headers
:
{
'
content-type
'
:
'
text/xml;charset=utf-8
'
...
...
@@ -703,12 +737,12 @@ exports.main = async function (event) {
body
:
`<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[OK]]></return_msg></xml>`
}
// 支付宝处理成功后
return
{
"
mpserverlessComposedResponse
"
:
true
,
return
{
mpserverlessComposedResponse
:
true
,
statusCode
:
200
,
headers
:
{
headers
:
{
'
content-type
'
:
'
text/plain
'
},
},
body
:
"
success
"
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录