支付宝SDK支付

通过本地安装的支付宝支付

Android端的实现比较简单,

  1. 下载SDK和DEMO
  2. 导入支付宝sdk后,需要注意权限、配置、混淆等;
  3. 通过后台获取得到orderInfo字符串
  4. 唤起支付宝:【需要在新线程中调用支付接口。(可参考alipay_demo实现)】
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
final String orderInfo = "从后台获取得到的orderInfo";

PayTask alipay = new PayTask(mActivity);
Map<String, String> result = alipay.payV2(orderInfo, true);
PayResult payResult = new PayResult(result);
/**
对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
*/
String resultInfo = payResult.getResult();// 同步返回需要验证的信息
String resultStatus = payResult.getResultStatus();

// 判断resultStatus 为9000则代表支付成功
if (TextUtils.equals(resultStatus, "9000")) {
// 该笔订单是否真实支付成功,需要依赖服务端的异步通知。
Toast.makeText(mActivity, "支付成功", Toast.LENGTH_SHORT).show();
} else {
// 该笔订单真实的支付结果,需要依赖服务端的异步通知。
Toast.makeText(mActivity, "支付失败", Toast.LENGTH_SHORT).show();
}

如果本地没有安装支付宝,就跳转到wap支付

我相信在PayTask.payV2中,有对是否安装支付宝做判断,
我们需要在Manifest中注册H5PayActivity

1
2
3
4
5
6
7
<activity
android:name="com.alipay.sdk.app.H5PayActivity"
android:configChanges="orientation|keyboardHidden|navigation"
android:exported="false"
android:screenOrientation="behind"
android:windowSoftInputMode="adjustResize|stateHidden" >
</activity>

参考资料