在微信小程序中,支持半屏/全屏唤起三方小程序来进行业务逻辑的处理。接入到实际的应用中,显示的逻辑样式如下图:

下面我就将微信小程序接入拉卡拉聚合支付收银台的半屏模式和全屏模式分别给具体的讲解下
微信官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html
微信小程序半屏唤起收银台是商户方接入拉卡拉聚合收银台的时候,唤起的一种前端展示形式,接入方传入订单后通过调用微信小程序的【wx.openEmbeddedMiniProgram
】能力唤起拉卡拉收款宝的小程序进行支付,在支付完成了以后再行返回商户的小程序进行支付完成后的逻辑处理。代码示例:
// source: 来源 (固定填写 WECHATMINI)
// counterUrl: 收银台链接(收银台订单创建接口返回的counter_url)
// 重要:根据counter_url的域名,判断跳转小程序的appId,此逻辑必须要有
const counterUrl = service.response.counter_url; // 获取后台返回的counter_url
let appId = 'wx889424d565967811'; // 默认为:拉卡拉聚合收银台小程序的appId
if (counterUrl.includes('q.huijingcai.top') || counterUrl.includes('q.lakala.com')) {
appId = 'wxc3e4d1682da3053c' // 拉卡拉收款宝小程序appId
}
//下面是半屏唤起的示例
wx.openEmbeddedMiniProgram({
appId,
path: `payment-cashier/pages/checkout/index?source=WECHATMINI&counterUrl=${
encodeURIComponent(counterUrl)
}`,
envVersion: 'trial',
// release: 正式版 trial: 体验版
success(res) {
// 打开成功
}
})
在成功唤起后处理好支付的逻辑以后,可以用过调用【wx.navigateBackMiniProgram】返回接入方商户的小程序。
上述中涉及的到字段值如下:
Appid:此处填写拉卡拉聚合收银台小程序的APPID,值为wx889424d565967811
Path:此处为打开的页面路径,值为payment-cashier/pages/checkout/index?source=WECHATMINI&counterUrl=${
encodeURIComponent(counterUrl)
}
envVersion:此处为要调用打开的拉卡拉聚合收银台的版本,release为正式版,trial为体验版。此处和微信官方的差异为没有develop
然后,即可调用打开成功
微信官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html
微信小程序全屏唤起拉卡拉收银台是使用的【wx.navigateToMiniProgram】能力,是需要用户触发跳转的,代码示例:
// source: 来源 (固定填写 WECHATMINI)
// counterUrl: 收银台链接(收银台订单创建接口返回的counter_url)
// 重要:根据counter_url的域名,判断跳转小程序的appId,此逻辑必须要有
const counterUrl = service.response.counter_url; // 获取后台返回的counter_url
let appId = 'wx889424d565967811'; // 默认为:拉卡拉聚合收银台小程序的appId
if (counterUrl.includes('q.huijingcai.top') || counterUrl.includes('q.lakala.com')) {
appId = 'wxc3e4d1682da3053c' // 拉卡拉收款宝小程序appId
}
//下面是全屏唤起的示例
wx.navigateToMiniProgram({
appId,
path: `payment-cashier/pages/checkout/index?source=WECHATMINI&counterUrl=${
encodeURIComponent(counterUrl)
}`,
envVersion: 'trial',
// release: 正式版 trial: 体验版
success(res) {
// 打开成功
}
})
上述中涉及的到字段值如下:
Appid:此处填写拉卡拉聚合收银台小程序的APPID,值为wx889424d565967811
Path:此处为打开的页面路径,值为payment-cashier/pages/checkout/index?source=WECHATMINI&counterUrl=${
encodeURIComponent(counterUrl)
}
envVersion:此处为要调用打开的拉卡拉聚合收银台的版本,release为正式版,trial为体验版。此处和微信官方的差异为没有develop
然后,即可调用打开成功
在微信小程序中不管是半屏唤起聚合收银台还是全屏唤起聚合收银台其主要的区别就是半屏使用的是【wx.openEmbeddedMiniProgram】的能力而全屏使用的是【wx.navigateToMiniProgram】能力。