简介
最近很多人可能都遇到一个问题,在使用微信JSAPI支付成功后,不走成功的回调方法,只有支付失败时会走回调,并且点击完成后,页面被自动关闭问题。这对用户体验来说已经很严重了,用户不确定自己支付是否成功,也不确定是系统还是支付哪块出了问题,对于用户和开发人员来说是不能接受的,综上我亲测也是找到了解决的办法来处理该问题,能帮助更多遇到同类型问题的大佬。祝各位大佬,永无bug。
解决方式
经过查看微信支付通知才知道这是微信支付官方关闭了微信JSAPI支付成功后跳转指定页面的功能,目的是为了推微信广告系统:点金计划。
下面是微信支付官方通知:
现在好多人估计一脸问号,什么是点金计划?这和微信支付成功回调有什么关系?为什么成功回调以前是好使的,现在却不好使?
小朋友你是否有很多问号??
加入“点金计划”后,服务商可在其管理平台对特约商户开通/关闭“点金计划”,以及为特约商户配置同业过滤标签,过滤所选行业的广告。同时对于有需要的特约商户,服务商可为其开通商家小票功能,即可在点金计划官方页面上方嵌入商家服务性内容,例如展示取餐码、停车时长等。
微信支付平台提供支付后页面模板中,支持账单展示、服务性内容展示、流量位推广等功能。其中,流量位推广指接入微信广告平台。
综上所说直白一点就是为了推广广告,引流,所以简单说要想继续使用成功跳转页,那么就要开启点金计划,按照官方的步骤调整新的支付成功页。
以下是升级后支付成功点击完成后的例子:
新增了小票展示位置和广告展示位置(在微信服务商后台均可设置),具体开启点金计划的操作流程是:
具体流程可在微信服务商设置中,左侧有个点金计划查看具体实现步骤
点金计划开启传送门:https://pay.weixin.qq.com/index.php/core/home/login?return_url=%2Findex.php%2Fxphp%2Fcgoldplan_mgr%2Factivity_index
JSAPI支付代码示例:
$.ajax({
url:'xxxxx',
type:'POST',
data:{'xxxx'},
dataType:'json',
success:function(res){
var data=res.jsApiParameters;
if(res.code === 0){
// //微信H5支付
WeixinJSBridge.invoke(
'getBrandWCPayRequest',
data,
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
//这块可以不写代码,付款成功点完成后,并且开启点金计划后
//会自动跳转微信服务商默认支付成功页面(该页面可在微信服务商设置布局,以及返回自己项目的按钮,可根据业务的实际需求配置)
}else{
//支付失败处理,可按原先逻辑处理,跳转自己的页面
}
}
);
}else{
//异常处理
}
}
});
错误的处理方式
以上是处理该问题仅此一种的解决方式,那么咱们再说一下网上一些不能解决该问题的答案,帮助需要的人节省更多的时间。
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
总结
综上就是处理微信jsapi支付成功后没返回值,及闪退的问题解决方式。