下载Android 支付宝SDK的demo
一、导入支付宝SDK
1.将alipaySdk-*****.aar包放在应用工程的libs目录下。
2.在主项目的build.gradle中,添加下面的内容,将libs目录作为依赖仓库
3.在App Module中的build.gradle中,将支付宝SDK添加依赖。
二、添加支付宝权限
在 AndroidManifest 里配置以上 3 个权限,支付宝 SDK 在运行时需要进行网络连接,并在必要的时候判断网络连接的状态(4G/Wi-Fi)等来进行支付体验的优化。
三、接口调用
在新线程中调用支付接口
PayTask对象主要为商户提供订单支付、查询功能,及获取当前开发包版本号。获取PayTask支付对象调用支付(支付行为需要在独立的非ui线程中执行)
final String orderInfo = info; // 订单信息
Runnable payRunnable = new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(DemoActivity.this);
Map <String,String> result = alipay.payV2(orderInfo,true);
Message msg = new Message();
msg.what = SDK_PAY_FLAG;
msg.obj = result;
mHandler.sendMessage(msg);
}
};
// 必须异步调用
Thread payThread = new Thread(payRunnable);
payThread.start();
四、支付结果获取和处理
同步返回
商户应用客户端通过当前调用支付的Activity的Handler对象,通过它的回调函数获取支付结果。(可参考 alipay_demo 实现)
代码示例:
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
Result result = new Result((String) msg.obj);
Toast.makeText(DemoActivity.this, result.getResult(),
Toast.LENGTH_LONG).show();
};
};
异步通知
商户需要提供一个http协议的接口,包含在请求支付的入参中,其 key 对应notify_url。支付宝服务器在支付完成后,会以POST 方式调用notify_url传输数据。