# 单笔转账到支付宝或微信(旧版)
重要通知
此为旧版本接口文档,vk-uni-pay 版本 ≥ 1.16.0 时,请查看 新版本文档 (opens new window)
# vkPay.transfer
# 支付宝
注意
需要申请开通支付宝支付的【转账到支付宝账户】接口,如下图所示
const vkPay = require("vk-uni-pay");
let transferRes = await vkPay.transfer({
account: "对方支付宝账号",
real_name: "对方真实姓名",
amount: 10, // 100=1元(单位分)
title: "提现到支付宝",
pay_type: "alipay",
remark: "转账备注",
out_biz_no: "转账单号",
payer_use_alias: true, // 是否展示付款方别名,为true将展示商家支付宝在商家中心 商户信息 > 商户基本信息 页面配置的 商户别名
});
if (transferRes.code === 0) {
// 转账成功后的逻辑
} else {
// 转账失败后的逻辑
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 请求参数
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
account | 对方支付宝账号或支付宝的会员ID | String | - | - |
real_name | 对方真实姓名 | String | - | - |
amount | 转账金额 100=1元(单位分),金额最低0.1元,也就是 amount >= 10 | Number | - | - |
title | 转账标题 | String | - | - |
pay_type | wxpay:微信支付 alipay:支付宝支付 | String | - | wxpay、alipay |
remark | 转账备注 | String | - | - |
out_biz_no | 转账单号 | String | - | - |
check_name | 是否需要检测真实姓名 | Boolean | true | false |
pid | 多商户模式下的自定义商户id(等于vk-pay-config表的_id) 查看vk-pay-config表 (opens new window) | String | - | - |
payer_use_alias | 是否展示付款方别名,为true将展示商家支付宝在商家中心 商户信息 > 商户基本信息 页面配置的 商户别名 | Boolean | false | true |
# 微信v2
注意
需要申请开通微信支付的【企业付款到零钱】接口(只有以前的老商户才有这个接口),如下图所示
无框架下的云函数代码示例(该写法同时也适用于任何框架)
const vkPay = require("vk-uni-pay");
let transferRes = await vkPay.transfer({
openid: "对方的openid",
real_name: "对方真实姓名", // 若check_name=true,则real_name必填
check_name: false, // 是否需要检测真实姓名
amount: 10, // 100=1元(单位分)
title: "提现到微信零钱",
pay_type: "wxpay",
platform: "mp-weixin",
remark: "转账备注",
out_biz_no: "转账单号"
});
if (transferRes.code === 0) {
// 转账成功后的逻辑
} else {
// 转账失败后的逻辑
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 请求参数
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
real_name | 对方真实姓名 | String | - | - |
amount | 转账金额 100=1元(单位分),金额最低0.1元,也就是 amount >= 10 | Number | - | - |
title | 转账标题 | String | - | - |
pay_type | wxpay:微信支付 alipay:支付宝支付 | String | - | wxpay、alipay |
remark | 转账备注 | String | - | - |
out_biz_no | 转账单号 | String | - | - |
check_name | 是否需要检测真实姓名 | Boolean | true | false |
openid | 用户的openid | String | - | - |
platform | 平台类型:app-plus、mp-weixin,用于获取对应平台的支付配置信息 | String | - | app-plus、mp-weixin、h5 |
pid | 多商户模式下的自定义商户id(等于vk-pay-config表的_id) 查看vk-pay-config表 (opens new window) | String | - | - |
payer_use_alias | 支付宝专用 - 是否展示付款方别名,为true将展示商家支付宝在商家中心 商户信息 > 商户基本信息 页面配置的 商户别名 | Boolean | false | true |
# 微信v3
vk-pay的版本需 >= 1.14.1
注意
需要申请开通微信支付的【商家转账到零钱】接口,如下图所示
# 单笔模式
const vkPay = require("vk-uni-pay");
let transferRes = await vkPay.transfer({
//real_name: "真实姓名", // 真实姓名 大于2000元的转账需要填写真实姓名
amount: 1, // 100=1元(单位分)
title: "转账",
pay_type: "wxpay",
openid: "oJEy94iPPehudfKiHmdmaJqNOVD8",
remark: "转账备注",
out_biz_no: "test" + new Date().getTime(), // 转账单号(请自己控制全局唯一)
version: 3, // 固定3,代表使用v3版本
});
if (transferRes.code === 0) {
// 转账成功后的逻辑
} else {
// 转账失败后的逻辑
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 请求参数
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
real_name | 【特殊选填】对方真实姓名(转账大于2000元时必填) | String | - | - |
amount | 【必填】转账金额 100=1元(单位分),金额最低0.1元,也就是 amount >= 10 | Number | - | - |
title | 【必填】转账标题 | String | - | - |
pay_type | 【必填】固定 wxpay | String | - | wxpay |
remark | 【必填】转账备注 | String | - | - |
out_biz_no | 【必填】转账单号 | String | - | - |
openid | 【必填】微信专用 - 用户的openid,需要与配置中的appid对应或与appid参数对应 | String | - | - |
appid | 【选填】手动传appid,不填则自动从配置中获取 | String | - | - |
platform | 【选填】若传了platform,且没传appid,则appid从指定的platform中获取 | String | - | - |
pid | 【选填】多商户模式下的自定义商户id(等于vk-pay-config表的_id) 查看vk-pay-config表 (opens new window) | String | - | - |
# 批量模式
const vkPay = require("vk-uni-pay");
let out_biz_no = "test" + new Date().getTime();
let transfer_detail_list = [{
out_detail_no: out_biz_no + "1", // 该用户的转账子单号
transfer_amount: 50, // 该用户的转账金额 单位为分 100 = 1元
transfer_remark: "关羽的报销单", // 该用户的转账备注
openid: "xxxxxxxx", // 该用户的openid
//user_name: "关羽",
},
{
out_detail_no: out_biz_no + "2", // 该用户的转账子单号
transfer_amount: 50, // 该用户的转账金额 单位为分 100 = 1元
transfer_remark: "张飞的报销单", // 该用户的转账备注
openid: "xxxxxxxx", // 该用户的openid
//user_name: "张飞",
}
]
let transferRes = await vkPay.transfer({
out_biz_no, // 转账单号(请自己控制全局唯一)
batch_name: "2022年8月员工报销单", // 本次批量转账的名称
batch_remark: "2022年8月员工报销单", // 本次批量转账的备注
total_amount: 100, // 本次批量转账共转金额 单位为分 100 = 1元
total_num: transfer_detail_list.length, // 本次批量转账共几笔
transfer_detail_list, // 本次批量转账详情
pay_type: "wxpay", // 固定 wxpay
version: 3, // 固定3,代表使用v3版本
});
if (transferRes.code === 0) {
// 转账成功后的逻辑
} else {
// 转账失败后的逻辑
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 请求参数
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
appid | 手动传appid,不填则自动从配置中获取 | String | - | - |
out_biz_no | 转账单号 | String | - | - |
batch_name | 本次批量转账的名称 | String | - | - |
batch_remark | 本次批量转账的备注 | String | - | - |
total_amount | 本次批量转账共转金额 单位为分 100 = 1元 | Number | - | - |
total_num | 本次批量转账共几笔 | Number | - | - |
transfer_detail_list | 本次批量转账详情 | Array | - | - |
pay_type | 固定wxpay | String | - | - |
version | 固定3,代表使用v3版本 | Number | - | - |
pid | 多商户模式下的自定义商户id(等于vk-pay-config表的_id) 查看vk-pay-config表 (opens new window) | String | - | - |
# 注意事项
- 新注册的企业支付宝账号,单笔转账接口的申请直接在支付宝官网申请可能会无法申请(申请条件以支付宝支付官网为准),此时可以联系支付宝商务人员,进行人工申请。
- 新注册的微信商户号,可能无法申请转账接口,申请条件以微信支付官网为准
- 支付宝不校验姓名时,account 参数为 支付宝的会员ID,而非支付宝账号