安卓第三方支付之支付宝支付
来源:互联网 发布:java获取上传文件名称 编辑:程序博客网 时间:2024/05/12 11:36
上一篇写了关于微信支付的,有微信支付怎么能少得了支付宝支付呢。老规矩,直接上流程
1.申请开发者账号,创建应用。绑定商户平台,好了,这些基础的乱七八糟的就不废话了,直接去看官方文档就行
1.下载SDK,https://docs.open.alipay.com/54/104509
2.将sdk添加到工程目录下面的libs目录下面
3.做一个简单布局
4.准备调起支付宝支付的页面
mrechargePresenter.RechargeAlipay(rmbAmount);关键代码还是一句,顺便说一下,这里是采用的mvp+retrofit+rxjava的网络请求方式,不知道的小伙伴请自行百度。当点击具体某一项item的时候,将商品的价格传递给后台。好,接下来我们来看下presenter逻辑层的处理。//支付宝public void RechargeAlipay(String amount){ getUiInterface().showLoadingDialog(); Subscription subscription=mretrefitManger.RechargeAlipay(amount) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .map(new Func1<BaseResponse<String>, PayResult>() {//将string转换成payresult @Override public PayResult call(BaseResponse<String> stringBaseResponse) { String data=stringBaseResponse.getData(); PayTask paytask=new PayTask(mactivity);//调用支付宝 Map<String,String>result=paytask.payV2(data,true);//data服务器返回的数据,true表示可以有加载dialog return new PayResult((Map<String,String>)result); } }) .compose(this.<PayResult>applyAsySchedulers())//这里封装了一个方法。其实就是让事件消费在主线程,
//当然你也可以不封装直接写 .subscribe(new Observer<PayResult>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { getUiInterface().dismissLoadingDialog(); BaseObserver.handleError(e, getUiInterface(), "info"); } @Override public void onNext(PayResult payResult) { getUiInterface().dismissLoadingDialog(); switch (payResult.getResultStatus()){
//可以在下面处理你自己的业务逻辑 case "9000": Toast.makeText(mactivity,"充值成功",Toast.LENGTH_SHORT).show(); //loadRechargeMap(2,"b2d57ac6b86baa2552a812a3ee68bf46");//刷新余额和列表
// break; case "8000": Toast.makeText(mactivity,"充值处理中。。。",Toast.LENGTH_SHORT).show(); break; case "6001": Toast.makeText(mactivity,"充值取消",Toast.LENGTH_SHORT).show(); break; default: Toast.makeText(mactivity,"充值失败",Toast.LENGTH_SHORT).show(); break; } } }); addSubscription(subscription);}
//回调的json实体类,这个demo里面也有,这里我们可以直接复制
public class PayResult { private String resultStatus; private String result; private String memo; public PayResult(Map<String, String> rawResult) { if (rawResult == null) { return; } for (String key : rawResult.keySet()) { if (TextUtils.equals(key, "resultStatus")) { resultStatus = rawResult.get(key); } else if (TextUtils.equals(key, "result")) { result = rawResult.get(key); } else if (TextUtils.equals(key, "memo")) { memo = rawResult.get(key); } } } @Override public String toString() { return "resultStatus={" + resultStatus + "};memo={" + memo + "};result={" + result + "}"; } /** * @return the resultStatus */ public String getResultStatus() { return resultStatus; } /** * @return the memo */ public String getMemo() { return memo; } /** * @return the result */ public String getResult() { return result; }}
最后在mianfest中添加声明
<activityandroid:name="com.alipay.sdk.app.H5PayActivity"android:configChanges="orientation|keyboardHidden|navigation"android:exported="false"android:screenOrientation="behind"/><activity android:name="com.alipay.sdk.auth.AuthActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind"/>//添加权限
<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
好了,最后我们来看下效果
阅读全文
0 0
- 安卓第三方支付之支付宝支付
- 第三方支付之支付宝支付
- 第三方支付之支付宝支付
- 安卓第三方支付之银联支付
- 安卓第三方支付之微信支付
- 安卓第三方支付之微信支付
- 安卓集成第三方支付宝
- 第三方支付宝支付
- 第三方支付宝支付
- iOS 第三方支付 支付宝支付
- 第三方支付支付宝支付
- 第三方支付之微信支付
- 第三方支付之微信支付
- 安卓中用AndroidStudio集成第三方支付宝
- android 第三方支付之支付宝使用详解
- ThinkPHP5之app第三方支付宝支付
- 第三方支付之微信支付(扫码支付)
- iOS第三方支付(支付宝SDK)
- 个人笔记5
- mybatis中foreach的使用
- nodejs以及JavaScript提升
- Python 手记(一):生成器与迭代器
- bzoj1050 [HAOI2006]旅行comf(并查集)
- 安卓第三方支付之支付宝支付
- 打磨渗透测试人员的利器Kali Linux
- 【转】串口编程EV_RXCHAR(节选)
- 进程间、线程间通信方式小结
- 自动检测局域网全部计算机ping情况脚本(windows,mac,linux)
- LeetCode | 39. Combination Sum
- Android 监听广播autoLauch 防止启动页面被多次启动(笔记)
- 超简单Android Studio导入第三方库(SlidingMenu)教程绝对傻瓜版
- Cron表达式