1.支付宝官网中登录企业支付宝证号,创建应用获取APPID
2.下载生成公私钥工具生成应用公钥和应用私钥
3.上传应用公钥,获取支付宝公钥
4.把APPID 支付宝公钥 发给服务端
5.获取签名后的
6.集成,下载官方demo后,将alipaySdk-20170309.jar包导入工程。
修改Manifest
<!-- 支付宝相关 -->
<activity
android: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" />
添加混淆
#下面是与支付宝相关的
-dontwarn com.alipay.**
-keep class com.alipay.android.app.IAlixPay{*;}
-keep class com.alipay.android.app.IAlixPay$Stub{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback{*;}
-keep class com.alipay.android.app.IRemoteServiceCallback$Stub{*;}
-keep class com.alipay.sdk.app.PayTask{ public *;}
-keep class com.alipay.sdk.app.AuthTask{ public *;}
7.从服务端获取经过签名后的订单信息orderInfo
new Thread(new Runnable() {
@Override
public void run() {
PayTask alipay = new PayTask(OrderPayWayActivity.this);
Map<String, String> result = alipay.payV2(orderInfo, true);
MyLogManager.d("result",result+"");
Message msg = handler.obtainMessage(PAY_SUCCESS, result);
handler.sendMessage(msg);
}
}).start();
case PAY_SUCCESS://充值成功后支付宝返回的数据
PayResult payResult = new PayResult((Map<String, String>) msg.obj);
/**
对于支付结果,请商户依赖服务端的异步通知结果。同步通知结果,仅作为支付结束的通知。
*/
String resultStatus = payResult.getResultStatus();
MyLogManager.d("resultStatus",resultStatus);
// 判断resultStatus 为9000则代表支付成功
if (TextUtils.equals(resultStatus, "9000")) {
ToastUtil.getInstance(OrderPayWayActivity.this).makeTextCenter("支付成功");
finish();
}
break;
其实官方demo完善的很不错,我们根据官方demo写就行。