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写就行。