评论

小程序支付完成领取微信代金劵、支付回调问题

支付完成回调领取代金劵问题

背景:商户接了微信支付代金劵活动、在微信支付完成后的微信页面、会出现一个微信代金劵的领取按钮、正常的支付会在支付完成后点击页面上的"完成"按钮回到对应的小程序发起支付之前的页面、但当点击微信代金劵的领取按钮之后、会跳转到一个对应的代金劵页面、然后点击立即使用之后会跳到小程序对应的页面、会发现微信会在这个时候再次会回调微信支付成功的success方法、导致从微信代金劵的对应页面跳往了一个支付成功页。代金劵页面如同所示:

解决方案:我们可以在发起支付前记录当前发起支付的页面路由、等微信支付回调的时候再次获取当前支付回调所处的页面路由、正常的点击按钮完成的支付回调、发起支付的路由和回调的路由是一致的、如果不一致我们就阻止这种回调、代码示例如下:

/*
  发起支付传入payPath则支付完成后判断页面,如回到的不是发起支付的页面,
  则不走成功回调,如:支付完成后的在微信页面领取微信代金劵
*/
try {
  const curPath = getCurrentPages()[getCurrentPages().length - 1].route;
  if (this.pageThis.route && curPath && curPath !== this.pageThis.route) return;
} catch (error) {
  console.error(error);
}
最后一次编辑于  2022-11-22  
点赞 1
收藏
评论
登录 后发表内容