美文网首页
2018-01-23

2018-01-23

作者: IntMan | 来源:发表于2018-03-15 11:16 被阅读25次

    WapPay(微信h5支付)回调问题

            项目中集成的微信支付一直都是APP支付的SDK,去年开始接触到了WapPay,WapPay就是微信h5支付。它不依靠APP端的SDK,在APP的web页面中,直接由h5直接向微信发起支付请求交互。然而这个WapPay,跳转到微信后,点击取消,或者后续完成支付都会跳转到Safari,不返回原APP,这就很尴尬了。最近又接了一些三方业务,购买类还是使用WapPay,所以需要解决这个返回问题。

    基于schemes

            先让我们设置APP的schemes:

    设置APP的schemes

            h5向微信发起支付的时候有个redict_url_参数,在该参数中设置的是回调页面地址,如支付结果页地址。我们支付成功,和取消支付都是跳转订单列表地址,所以只要一种url。但是这个url设置需要以APP中设置的schemes打头。例如你设置APP的schemes是SugarFree,那么这个url则是SugarFree://…..。后续的…..拼接回调地址,这边我们没有把域名拼接进去。如跳转地址如果是百度:https://www.baidu.com/,我们并不是设置redict_url_为:SugarFree://https://www.baidu.com/,而是SugarFree://www.baidu.com。这个在后期的页面跳转中体验作用。

            然后再位置支付后,跳转到Safari中,url为设置的redict_url,例如跳转的是:SugarFree://www.baidu.com,Safari会提示是否在你的APP中打开:

    Safari中输入带有schemes的url

            点击确定后就会跳回APP。然后会走系统AppDelegate中的这个方法:

    - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options

            里面能获取到url,即会跳地址。如下图:

    跳回APP进入的方法

            然后在对应url进入对应方法处理后续的跳转,我这边采用通知的形式,回调到APP时发送通知,通知接收方是web基类或者具体web页面,对应跳转结果页面:

    web基类中的接受通知跳转处理

    待完善

    1.基于universal link处理

    2.通知给基类做url跳转优化

    相关文章

      网友评论

          本文标题:2018-01-23

          本文链接:https://www.haomeiwen.com/subject/ompsaxtx.html