自己的Android应用中调起支付宝网页
来源:互联网 发布:网络销售字母缩写 编辑:程序博客网 时间:2024/06/06 07:09
这几天一直研究支付宝接口调用,因为当前应用中需要调用支付宝接口作移动支付。
遇到一个问题困扰几天,就是当我们的手机端未安装支付宝APP的时候,需要在自己应用中调用支付宝的登陆网页进行支付。我是Android开发,网上有很多小伙伴都遇到了无法调起网页支付宝登陆页面的问题,在此给大家分享一个解决方案,希望能帮助遇到同样问题困扰的小伙伴。
网上也有很多贴,都是说要加入H5PayActivity和AuthActivity的配置来解决,但是并不起作用,我的就是,虽然有跳转的动作,但是直接一个白板页面招呼,就没有然后了。
支付宝技术文档中其实有写,那就是需要将调用支付宝支付那一段代码单独放在一个线程里进行调用,如下:
final String payInfo=args.getString(0);Runnable payRunnable = new Runnable() {@Overridepublic void run() {PayTask alipay = new PayTask(activity);String result = null;// 调用支付接口,获取支付结果result = alipay.pay(payInfo, true);Message msg = new Message();msg.what = SDK_PAY_FLAG;msg.obj = result;new Handler() {@SuppressWarnings("unused")public void handleMessage(Message msg) {switch (msg.what) {case SDK_PAY_FLAG: {PayResult payResult = new PayResult((String) msg.obj);/*** 同步返回的结果必须放置到服务端进行验证(验证的规则请看https://doc.open.alipay.com/doc2/* detail.htm?spm=0.0.0.0.xdvAU6&treeId=59&articleId=103665&* docType=1) 建议商户依赖异步通知*/String resultInfo = payResult.getResult();// 同步返回需要验证的信息String resultStatus = payResult.getResultStatus();// 判断resultStatus 为“9000”则代表支付成功,具体状态码代表含义可参考接口文档if (TextUtils.equals(resultStatus, "9000")) {Toast.makeText(activity, "支付成功", Toast.LENGTH_SHORT).show();PluginResult pluginResult=new PluginResult(PluginResult.Status.OK,"支付成功");pluginResult.setKeepCallback(true);callbackContext.sendPluginResult(pluginResult);} else {// 判断resultStatus 为非"9000"则代表可能支付失败// "8000"代表支付结果因为支付渠道原因或者系统原因还在等待支付结果确认,最终交易是否成功以服务端异步通知为准(小概率状态)if (TextUtils.equals(resultStatus, "8000")) {Toast.makeText(activity, "支付结果确认中", Toast.LENGTH_SHORT).show();} else {// 其他值就可以判断为支付失败,包括用户主动取消支付,或者系统返回的错误Toast.makeText(activity, "支付失败", Toast.LENGTH_SHORT).show();}}break;}default:break;}};}.sendMessage(msg);}};// 必须异步调用Thread payThread = new Thread(payRunnable);payThread.start(); return true;
这样就可以调通了,应该没有大问题,因为我还是用插件的方式写的了,有外层的嵌套,都没问题。
0 1
- 自己的Android应用中调起支付宝网页
- 如何在自己的应用中打开支付宝客户端
- android 支付宝之网页支付和快捷支付
- 支付宝网页支付
- 支付宝网页支付
- 支付宝支付网页
- 关于Android调用支付宝接口”有的手机无法调起网页支付”遇到的问题
- Android——支付宝SDK调用(移动应用接入支付宝支付,提供安全、便捷的支付能力)
- 通过点击网页中支付功能开启本地android应用
- android应用集成支付宝接口的简化
- Android应用集成支付宝接口的简化
- Android应用集成支付宝接口的简化
- Android应用集成支付宝接口的简化
- 支付宝手机网页支付
- WindowsPhone 支付宝网页支付
- 支付宝pc网页支付
- H5网页调用原生支付宝支付的完整demo
- 支付宝的应用+代码
- Struts2.3+Spring3.2.8+Hibernate4.1全注解配置
- 6.5 定义一个日期类 Date,该类对象存放一个日期,可以提供的操作有: void GetDate(); //取日期值,格式如“2001 年 2 月 5 日” void GetYear(); //取
- Java工作笔记:部署Tomcat时使用jni和jna调用DLL文件的问题
- storm常见错误
- 66.6 设计一个雇员类 employee,存储雇员的姓名、编号和生日等信息,要求该类使用 上一题设计的日期类作为成员对象。雇员类的使用如下: //定义一个雇员,其雇员号为 10,生日为 1970 年
- 自己的Android应用中调起支付宝网页
- [2016ACM多校] HDU5764 搜索
- 6.7 编写一个程序,设计一个类 score 用于统计一个班的学生成绩,其中使用一个静 态数据成员 sumfs 存储总分和一个静态成员函数 rsumfs()返回该总分
- UVA 1614 Hell on the Markets 【贪心+结论题】
- MySQL索引背后的数据结构及算法原理
- 点击链接,显示段落。
- 图论之最短路径-昂贵的聘礼
- MYSQL简语---查询数据库并输出JSON
- 7.2 设计一个点类,其中包含一对坐标点数据成员、一个求两个点之间距离的友元函 数 dist 和显示坐标点的成员函数,并用数据进行测试。