ionic 微信支付、支付宝支付未回调终极解决【其实很简单】

在做Ionic开发中,很多时候都要集成支付功能,比如微信和支付宝,几经折腾可以完成支付,但支付回调这个问题,很多人都会遇到,就算是插件作者做了说明,也还会存在无法回调的问题,那就说明是自己的代码写得有问题了,下面就一起来看看这个问题怎么解决。

相关插件

序号插件链接
1cordova-plugin-wechatnpm
2cordova-plugin-alipay-v2npm

问题描述

  1. 直接回调catch逻辑,支付成功也是执行catch
  2. 错误提示undefined is not an object

问题分析

catch 被触发肯定是出错了,这个错误不是说肯定就是请求支付的时候出错,在then逻辑里有错误也会触发catch,那咱们直接在then里面打个console.log()这个总不会报错了吧,很遗憾,then逻辑还是没有触发, 那咱们就来看看catch中回传的error参数的错误信息, undefined is not an object,貌似是什么东西未定义,怎么办呢?

问题猜测

  • promise 问题 ?
  • 查看插件的www/xxx.js文件中的exec函数的定义如下:
function xxx(params, onSuccess, onError);
  • 我的调用方式
xxx(params).then(onSuccess).catch(onError);
  • 换成与插件定义一致的方式试试看?
  • 回调了, 回调了!

解决问题

将插件的函数调用方法进行替换,即可, 参考 问题猜测
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序网络请求错误400是指在小程序中进行网络请求时,服务器返回了400错误码。400错误码表示客户端请求有语法错误,无法被服务器理解。下面是对这个错误的可能原因和解决方案的回答。 网络请求错误400可能的原因有以下几种: 1. 请求参数错误:可能是请求中传递的参数格式不正确,缺少必要参数,或者参数值超出了服务器的允许范围。解决方案是仔细检查请求参数,确保参数格式正确、必要参数完整,并符合服务器的要求。 2. 请求方法错误:可能是使用了不支持的请求方法,比如向服务器发送了不被允许的DELETE请求。解决方案是确认使用了正确的请求方法,比如GET、POST等,并根据实际需求进行调整。 3. 请求URL错误:可能是请求的URL地址不正确,无法被服务器找到。解决方案是检查请求的URL是否正确,包括域名、路径、参数等都需要确认无误。 4. 请求头错误:可能是请求头中包含了不被服务器支持的信息,比如使用了过期的或者错误的身份验证信息。解决方案是检查请求头是否包含了正确的信息,并根据服务器的要求进行相应设置。 当出现小程序网络请求错误400时,可以通过以下步骤来解决问题: 1. 仔细阅读错误提示:小程序会返回详细的错误信息,包括错误码和错误描述。根据错误描述可以初步判断出错原因。 2. 检查请求参数:确认请求参数是否正确,并符合服务器的要求。 3. 检查请求方法和URL:确认使用了正确的请求方法,并检查请求的URL是否正确无误。 4. 检查请求头:确认请求头中的信息是否正确,并根据服务器的要求进行相应设置。 如果以上步骤都没有解决问题,可以尝试使用其他调试工具进行网络请求的跟踪和分析,例如使用开发者工具的Network面板,查看请求和响应的具体内容,以进一步排查错误的原因。最后,如果问题仍然存在,可以联系服务器端的开发人员,了解服务器对于该错误码的具体定义和处理方式,以获得更准确的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值