1. 程式人生 > >Android中實現支付寶支付總結

Android中實現支付寶支付總結

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