android原生接入H5微信支付

一、问题详述

1、让服务端去除同步回调地址,此时当客户端唤起微信支付界面,取消后又会重复唤起支付

2、加上同步地址后,当取消、支付成功、或等待支付中,此时都会跳转同步界面,并未回到app中

二、问题思考

1、由于以上叙述的问题,得出结论:app中调用H5支付,并不能采用H5支付的模式进行,需要借助activity的特性交互。

2、就算成功回到app中,如何知道支付的成功状态。是采用轮询、长链接、或是推送的形式值得思考。

三、实践方案

1、让服务端加上同步地址,不能为空

2、不能采用同步地址作为交互的方案,但是又不能去除,客户端需要接受消息,否则客户端会不断唤起支付界面

3、我们在支付Activity中设置是否第一次进入的标示,在Resume中进行判断是否由支付界面回到当前Activity界面。如果并不是一次进入当前activity界面中,我们就认为他是从支付界面跳转回来的,不管是按Home界面回来或是其他操作,此时我们用最简单的方式,轮询机制主动查询服务端订单信息,这里为了友好交互,我们采用10秒中每5秒调用一次,当第一个5秒就成功了,我们也就返回支付成功了,此时就没有必要进行第二个5秒了。尽管会有失败的情况,但是这样长的时间能够保障更多的支付成功情况。如果服务端延迟过长,那应该需要优化一下了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 5,779评论 2 51
  • 一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...
    lucas777阅读 5,278评论 2 54
  • 1、App支付简介 买家在手机、掌上电脑等无线设备的应用程序内,可通过支付宝进行付款购买特定服务或商品,资金即时到...
    PZcoder阅读 44,145评论 5 22
  • Android Studio JNI流程首先在java代码声明本地方法 用到native关键字 本地方法不用去实现...
    MigrationUK阅读 11,971评论 7 123
  • 我还记得 那年的春天 杨柳依旧在 桐树一棵一棵 年长的 年幼的 依偎在乡村的土地上 袅袅的炊烟里 开始绽放 一树 ...
    向往如兰阅读 325评论 1 4