小程序支付接入
说明
向商家自有小程序提供小鹅通店铺的支付能力
封装了wx.requestPayment,开发者只需要调用内部提供的toPay方法即可拉起小程序微信支付功能。
注意:需要小程序开通微信支付功能
小鹅通小程序SDK支付流程
流程图:
如何使用
1. 下载js文件
商家开发者进入【店铺管理台-应用-经营渠道-SDK服务】,打开支付接入模块中的【小程序支付开发文档】链接,下载js包。
【SDK支付包版本】
2. 小程序开发(uniapp和原生小程序都适用)
将下载后的js文件,存放至项目源代码目录下,
3. 自有小程序配置支付页和支付结果页 配置模板如下:
a. 支付页
进入店铺B端管理台-应用-经营渠道-SDK服务 在店铺B端管理台进行配置小程序原生支付页路径
例如:自有小程序支付页路径:/page/xiaoe_pay/pay_page/index
功能:支付页是承载支付的小程序原生页面,用于拉起微信支付功能
在支付页的onLoad生命周期函数中将option.payConfig当第一参数传入toPay; toPay的第二参数是Object类型,userId: 登录的用户id、appId: 店铺Id
// 原生小程序页面
const { toPay } = require("小程序SDK支付能力JS文件的存放路径");
Page({
onLoad(option) {
toPay(option.payConfig,{
userId: '用户id',
appId: '商家店铺appId',
})
}
});
<!-- uniapp框架 -->
<template>
<view />
</template>
<script>
import { toPay } from "小程序SDK支付能力JS文件的存放路径";
export default {
data() {
return {};
},
onLoad(option) {
toPay(option.payConfig, {
userId: '用户id',
appId: '商家店铺appId'
});
},
};
</script>
<style></style>
b. 支付结果页
店铺B端管理台进行配置小程序原生支付结果页路径。
例如:自有小程序支付结果页路径:page/xiaoe_pay/pay_back/index
功能:支付结果页是用于支付成功、支付失败之后展示的页面;当开发者调用toPay方法,第二参数option的fail属性未定义时,toPay内部会自行处理支付结果,跳转到支付结果页。
在支付结果页的onLoad生命周期函数中将option.back_url进行decodeURIComponent解码,将解码后的链接赋值到web-view的src上。
注意:需要加上小程序SDK标识: app_env_type=mini_program_wechat_sdk
// 原生小程序页面
const { getUrl } = require("小程序SDK支付能力JS文件的存放路径");
Page({
data: {
pageUrl: ''
},
onLoad(option) {
const url = getUrl(option)
this.setData({
pageUrl: url
})
}
});
<!-- uniapp框架 -->
<template>
<view>
<web-view v-if="pageUrl" :src="pageUrl" />
</view>
</template>
<script>
import { getUrl } from '小程序SDK支付能力JS文件的存放路径'
export default {
data() {
return {
pageUrl: "",
showView: false,
};
},
onLoad(option) {
this.pageUrl = getUrl(option)
},
methods: {},
};
</script>
<style></style>
方法及参数说明
方法
toPay:(payConfig: string) : void=> {}
功能:小程序拉起支付功能的方法,调用该方法,会对option.payConfig中对应订单进行获取支付配置,然后拉起微信支付。
参数 | 说明 | 类型 | 可选值 |
---|---|---|---|
参数1:option.payConfig | H5店铺下单页跳转携带的支付参数(从支付页的onLoad生命周期函数中获取: option.payConfig) | string | — |
参数2: options | 支付功能配置项 | object | — |
getUrl: (option: object) : string=> { return url }
功能:获取环境对应H5链接
返回值: string类型的链接
参数 | 说明 | 类型 | 可选值 |
---|---|---|---|
option | H5店铺下单页跳转携带的支付参数(从支付页的onLoad生命周期函数中获取第一次参数: option) | object | — |
参数
toPay方法的第二参数:options
{
userId: '小鹅通店铺的用户id', // 必传
appId: '小鹅通店铺appid', // 必传
success: (url) => { // 支付成功回调,可选,默认不传toPay内部会执行wx.redirectTo({url: `/page/xiaoe_pay/pay_back/index?back_url=${encodeURIComponent(paySuccessUrl)}`})
// 如果定义了success,自行处理跳转 // 参数url:`/page/xiaoe_pay/pay_back/index?back_url=${encodeURIComponent(paySuccessUrl)}`
},
fail: () => { // 支付失败回调,可选,默认不传toPay内部会执行wx.redirectTo({url: `/page/xiaoe_pay/pay_back/index?back_url=${encodeURIComponent(payConfig.src_url)}`})
// 如果定义了fail,自行处理跳转 // 参数url:`/page/xiaoe_pay/pay_back/index?back_url=${encodeURIComponent(payConfig.src_url)}`
}
}