Android中實現支付寶支付總結
阿新 • • 發佈:2019-01-29
1.支付寶官網中登入企業支付寶證號,建立應用獲取APPID
2.下載生成公私鑰工具生成應用公鑰和應用私鑰
3.上傳應用公鑰,獲取支付寶公鑰
4.把APPID 支付寶公鑰 發給服務端
5.獲取簽名後的
6.整合,下載官方demo後,將alipaySdk-20170309.jar包匯入工程。
<!-- 支付寶相關 --> <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寫就行。