Android客户端5分钟集成支付宝支付
来源:互联网 发布:c 获取数据库实例名 编辑:程序博客网 时间:2024/06/05 05:39
蚂蚁金服开放平台:
https://open.alipay.com/platform/home.htm
alipay在2.0后更注重安全性,我们客户端需要保存的东西没有了
很轻松就可以实现支付功能。这里我们应该知道,服务端已经集成了alipay,公司自己的服务器会给我们提供一个接口,我们只需要从这个接口里拿到orderInfo,这个String是什么呢,我们看官方文档
省去了我们之前客户端需要保存的信息
// 商户PID public static final String PARTNER = ""; // 商户收款账号 public static final String SELLER = ""; // 商户私钥,pkcs8格式 public static final String RSA_PRIVATE = ""; // 支付宝公钥 public static final String RSA_PUBLIC = "";
下面我们看新的集成步骤
1 下载sdk,add as library
2 清单文件配置
权限
<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" />
H5页面
<activity android:name="com.alipay.sdk.app.H5PayActivity" android:configChanges="orientation|keyboardHidden|navigation|screenSize" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > </activity> <activity android:name="com.alipay.sdk.app.H5AuthActivity" android:configChanges="orientation|keyboardHidden|navigation" android:exported="false" android:screenOrientation="behind" android:windowSoftInputMode="adjustResize|stateHidden" > </activity>
3支付页面
Handler处理异步任务的子线程回调
private static final int SDK_PAY_FLAG = 1; private String orderInfo; private Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case SDK_PAY_FLAG: { @SuppressWarnings("unchecked") PayResult payResult = new PayResult((Map<String, String>) msg.obj); /** 对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。 */ String resultInfo = payResult.getResult();// 同步返回需要验证的信息 String resultStatus = payResult.getResultStatus(); // 判断resultStatus 为9000则代表支付成功 if (TextUtils.equals(resultStatus, "9000")) { // 该笔订单是否真实支付成功,需要依赖服务端的异步通知。 Toast.makeText(AddressInfoActivity.this, "支付成功", Toast.LENGTH_SHORT).show(); setResult(1); finish(); } else { // 该笔订单真实的支付结果,需要依赖服务端的异步通知。 Toast.makeText(AddressInfoActivity.this, "支付失败", Toast.LENGTH_SHORT).show(); } break; } } } };
异步任务(支付)
需要orderInfo,要提前请求自己服务器接口回调,拿到对应的字符串信息
/** * 支付宝支付异步任务 * * @author haoran */private class AliPayThread extends Thread { @Override public void run() { PayTask alipay = new PayTask(AddressInfoActivity.this); Map<String, String> result = alipay.payV2(orderInfo, true); Message msg = new Message(); msg.what = SDK_PAY_FLAG; msg.obj = result; mHandler.sendMessage(msg); } }
PayResult,直接复制过去
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; }}
阅读全文
0 0
- Android客户端5分钟集成支付宝支付
- 安卓客户端5分钟集成微信支付
- android 集成支付宝支付
- Android集成支付宝支付
- Android 集成支付宝支付
- Android 集成支付宝支付
- 2分钟集成支付宝
- Android客户端支付宝支付
- Android支付宝支付集成,同时支持无客户端H5支付
- 客户端集成支付宝接口
- Android 接入支付宝支付只需十分钟
- android集成支付宝
- android 集成支付宝
- Android 集成 支付宝
- Android支付宝集成
- Android支付宝集成
- Android集成支付宝
- Android集成支付宝
- C++学习笔记(1)
- ios中跳转界面
- WebSocket中关于使用ProtoBuf传输数据介绍js部分
- 内部类
- c++11 实现信号量
- Android客户端5分钟集成支付宝支付
- Codeforces Round #425 A. Sasha and Sticks
- CMake 学习(一):使用链接第三方库
- JDBC编程学习笔记(一)——与MySQL的连接 ConnMySql.java
- Linux磁盘管理-df,du,disk
- POI操作Excel
- spring------特殊字符转义和方法入参检测工具类
- git和svn区别
- elasticsearch初步使用(mac os 10.12.5)