支付托管
一、产品介绍
计全付提供的托管支付产品,旨在解决在APP、小程序和H5等终端环境中,通过微信和支付宝完成支付的需求。
在正式接入之前,请先查看我们的真实视频演示效果,帮助您判断是否进行对接。需要特别注意的是,在APP场景下,只有通过微信SDK方式完成支付后,才能返回至APP。支付宝及其他支付方式则无法实现此功能。因此,在注重用户体验的情况下,请谨慎选择支付方式。
二、支付场景
您可以通过调用【统一支付下单】接口来下单,支付方式(wayCode)字段传递:TG_PAY,同时根据不同支付方式传递相应的渠道参数(channelExtra)。具体如下:
| 字段名 | 变量名 | 必填 | 类型 | 示例值 | 描述 |
|---|---|---|---|---|---|
| 支付方式 | userPayType | 是 | String(30) | wx | 支付方式:wx - 微信, zfb - 支付宝 |
| 调起方式 | invokeType | 是 | String(30) | app2lite | app2lite:sdk调用方式, 返回调起小程序所需参数。支持 wx、zfb;h52lite:h5跳小程序支付,返回跳转url地址。支持 wx、zfb;h52jsapi:h5跳支付宝内浏览器打开网页收银台支付,返回跳转url地址。支持 zfb;h52qr:h5跳支付宝内打开当面付收银台支付,返回跳转url地址。支持 zfb;lite2lite:小程序跳转小程序支付,返回跳转小程序所需参数。支持 wx、zfb |
1. APP支付
1.1 APP跳转微信小程序SDK
此方案允许APP跳转至微信小程序进行支付,支付后可以返回至APP。通过调用计全付托管支付接口,返回用于打开微信小程序的SDK参数。需要在微信官方申请移动应用,并根据微信SDK文档实现小程序跳转。
渠道参数(channelExtra):{ "userPayType": "wx", "invokeType":"app2lite"}
返回参数(payData):
{
"path": "pages/hub/lite",
"qrUrl": "https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96ba0cea998014adefc56f841d31998e5a5d59bb32e81e898e9f309d072824220eb7",
"appid": "wxfaff9394a9a745f0",
"ghid": "gh_5ea8094c2d68",
"env": "release"
}
| 参数 | 描述 |
|---|---|
| path | 跳转到微信小程序的具体路径 |
| qrUrl | 二维码链接,支付过程中附加在路径后 |
| appid | 目标小程序的appid |
| ghid | 微信小程序的原始ID |
| env | 微信小程序的版本,release - 正式版;test - 开发版;preview - 体验版 |
APP端拉起微信小程序,可以参见微信官方文档:APP拉起微信小程序说明。
以下为uniapp拉起微信小程序示例代码:
export function sdkOepnWeiChatLite(val) {
const envObj = {
release: 0,
test: 1,
preview: 2
}
// #ifdef APP-PLUS
plus.share.getServices(
(data) => {
let sweixin = null;
data.forEach(item => {
if (item.id === "weixin") {
sweixin = item
}
})
if (sweixin) {
// 跳转到微信小程序
sweixin.launchMiniProgram({
id: val.ghid, //微信小程序原始id
path: val.path + (val.qrUrl ? '?q=' + encodeURIComponent(val.qrUrl) : ''),
// 可取值:0-正式版; 1-测试版; 2-体验版。默认值为0。
type: envObj[val.env] || 0, // 微信小程序版本类型,
});
} else {
uni.showToast({
title: "请安装微信",
icon: "none",
});
}
},
(err) => {
console.log("跳转失败");
}
);
// #endif
}
1.2 APP跳转微信小程序H5
此方案适用于APP跳转至微信小程序支付后,无法返回至APP的场景。调用计全付托管支付接口后,返回一个跳转地址。APP端可以通过web-view打开该地址,随后跳转至微信小程序完成支付。
渠道参数(channelExtra):{ "userPayType": "wx", "invokeType":"h52lite"}
返回参数(payData):
"payData": "weixin://dl/business/?appid=wxfaff9394a9a745f0&path=pages/hub/lite&query=q%3Dhttps%3A%2F%2Fpay.yintongzaixian.com%2Fcashier%2Fpages%2Fhub%2Fh5%2F%3FjeepayToken%3D8d6f6088eaf746d2157aa14c142d96baa70f6b4303fd9e84ce8bfbe63e8271d86d7caa07a50cb3b2cb06681d07d1dfeb&env_version=release"
1.3 APP跳转支付宝小程序SDK
此方案允许APP跳转至支付宝小程序进行支付,但无法返回至APP。调用计全付托管支付接口后,会返回用于打开支付宝小程序的参数。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"app2lite"}
返回参数(payData):
{
"path": "pages/hub/lite",
"qrUrl": "https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96ba76abfcbb3efb20c10c9a16105f6c1274e0e2a737c2824c40b21eb95f70e02e19",
"appid": "2021002172669744",
"alipays": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2"
}
| 参数 | 是否必填 | 参数描述 |
|---|---|---|
| path | N | 跳转到支付宝小程序的具体路径 |
| qrUrl | N | 二维码链接 |
| appid | N | 跳转到目标小程序的appid |
| alipays | Y | 跳转支付宝的地址,直接使用该地址即可跳转至支付宝小程序 |
从返回的payData参数中取得alipays,APP端通过web-view打开该地址,然后跳转至支付宝小程序完成支付。
1.4 APP跳转支付宝小程序H5
此方案适用于APP跳转至支付宝支付后,无法返回至APP的场景。通过计全付托管支付接口返回跳转地址,APP端通过web-view打开该地址,然后跳转至支付宝小程序完成支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52lite"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2"
1.5 APP跳转支付宝JSAPI
此方案适用于APP跳转至支付宝支付后,无法返回至APP的场景。通过计全付托管支付接口返回跳转地址,APP端通过web-view打开该地址,再跳转至支付宝浏览器完成支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52jsapi"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2"
1.6 APP跳转支付宝当面付
此方案适用于APP跳转至支付宝支付后,点击返回商家或完成按钮时返回至APP的场景。通过店来宝托管支付接口返回跳转地址,APP端通过web-view打开该地址,再跳转至支付宝完成支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52qr"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode=https%3A%2F%2Fqr.alipay.com%2Fbax08006ghwweuiramsr30fc?_s=web-other"
2. 小程序支付
2.1 微信小程序转小程序
通过店来宝托管支付接口,返回小程序跳转参数,实现微信小程序间的跳转支付。
渠道参数(channelExtra):{ "userPayType": "wx", "invokeType":"lite2lite"}
返回参数(payData):
{
"path": "pages/hub/lite",
"qrUrl": "https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96ba139b1fa377ec64723a21bbf30943718f59f857008618865f754157dc75904667",
"appid": "wxfaff9394a9a745f0",
"ghid": "gh_5ea8094c2d68",
"env": "release"
}
| 参数 | 参数描述 |
|---|---|
| path | 跳转到微信小程序的具体路径 |
| qrUrl | 二维码链接,会作为查询参数附加在路径后面 |
| appid | 跳转到目标小程序的appid |
| ghid | 微信小程序原始ID |
| env | 微信小程序版本,release - 正式、develop - 开发、 trial - 体验 |
2.2 支付宝小程序转小程序
通过店来宝托管支付接口,返回支付宝小程序跳转所需参数,实现支付宝小程序间的跳转支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"lite2lite"}
返回参数(payData):
{
"path": "pages/hub/lite",
"qrUrl": "https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96ba139b1fa377ec64723a21bbf30943718f59f857008618865f754157dc75904667",
"appid": "2021002172669744"
}
| 参数 | 参数描述 |
|---|---|
| path | 跳转到支付宝小程序的具体路径 |
| qrUrl | 二维码链接,会作为查询参数附加在路径后面 |
| appid | 跳转到目标小程序的appid |
3. H5支付
3.1 H5跳转至微信小程序
在H5场景下,通过调用店来宝托管支付接口,返回一个跳转地址。H5端通过window.location.href = url的方式打开该地址,随后跳转至微信小程序完成支付。
渠道参数(channelExtra):{ "userPayType": "wx", "invokeType":"h52lite"}
返回参数(payData):
"payData": "weixin://dl/business/?appid=wxfaff9394a9a745f0&path=pages/hub/lite&query=q%3Dhttps%3A%2F%2Fpay.yintongzaixian.com%2Fcashier%2Fpages%2Fhub%2Fh5%2F%3FjeepayToken%3D8d6f6088eaf746d2157aa14c142d96baa70f6b4303fd9e84ce8bfbe63e8271d86d7caa07a50cb3b2cb06681d07d1dfeb&env_version=release"
3.2 H5跳转至支付宝小程序
通过调用店来宝托管支付接口,返回跳转支付宝小程序的地址,H5端通过window.location.href = url的方式打开该地址,随后跳转至支付宝小程序完成支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52lite"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2"
3.3 H5跳转至支付宝JSAPI
通过调用店来宝托管支付接口,返回跳转支付宝浏览器的地址,H5端通过window.location.href = url的方式打开该地址,随后跳转至支付宝浏览器进行支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52jsapi"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?appId=2021002172669744&page=pages/hub/lite&query=qrCode=https://pay.yintongzaixian.com/cashier/pages/hub/h5/?jeepayToken=8d6f6088eaf746d2157aa14c142d96baea03c39661283761d19ffeded32087c5d7049370b4849b44f5259ff61bbbe7d2"
3.4 H5跳转至支付宝当面付
通过调用计全付托管支付接口,返回跳转支付宝当面付的地址,H5端通过window.location.href = url的方式打开该地址,随后跳转至支付宝浏览器进行支付。
渠道参数(channelExtra):{ "userPayType": "zfb", "invokeType":"h52qr"}
返回参数(payData):
"payData": "alipays://platformapi/startapp?saId=10000007&clientVersion=3.7.0.0718&qrcode=https%3A%2F%2Fqr.alipay.com%2Fbax08006ghwweuiramsr30fc?_s=web-other"
三、支付插件
店来宝官方团队在DCloud插件市场发布了jeepay-uni-pay支付插件,方便用户快速接入店来宝。
四、相关知识
1. 支付宝Schema介绍
支付宝小程序可以通过Schema URL方式打开,常用格式如下:
alipays://platformapi/startapp?appId=APPID&page=PAGE&query=QUERY
| 支付宝还支持通过saId参数调用内置功能,常见的saId参数包括: | saId | 功能说明 |
|---|---|---|
| 10000007 | 扫一扫功能 | |
| 20000123 | 收款功能 | |
| 20000056 | 转账功能 | |
| 88886666 | 发红包功能 |