Android中实现支付宝支付总结

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

猜你喜欢

转载自blog.csdn.net/haoxuhong/article/details/80637753
今日推荐