支付宝SDK
由于支付寶SDK對于整個支付流程已經介紹的十分詳細了,在這里我就簡單說一些注意點。
由于存在支付寶可能沒有安裝的情況,所以我們在調用支付寶支付時,需要對其進行判斷,做出不同的處理方式,即是使用客戶端支付,還是使用H5支付,這里簡單闡述一下:
情況一:已安裝支付寶客戶端
/*** 喚醒支付寶支付* @param data 服務端返回訂單數據*/ public void payOrder(JSONObject data) {registerLoadingView.setVisibility(View.GONE);String redirectStr = data.getString("redirectStr");if (!TextUtils.isEmpty(redirectStr)) { // 喚醒支付寶支付Thread payThread = new Thread(() -> {PayTask alipay = new PayTask(activity);String result = alipay.pay(redirectStr);Message msg = Message.obtain();msg.what = MSG_PAY_RESPONSE;msg.obj = result;handler.sendMessage(msg);});payThread.start();} }Handler handler = new Handler(msg -> {if (MSG_PAY_RESPONSE == msg.what) {Result result = new Result((String) msg.obj);if (!TextUtils.isEmpty(result.getResult())) {switch (result.getResult()) {case "4000": // 系統異常 TODOToast.makeText(context, "訂單支付失敗", Toast.LENGTH_SHORT).show();break;case "6001": // 用戶中途取消支付操作 TODOToast.makeText(context, "訂單支付已被取消", Toast.LENGTH_SHORT).show();break;case "6002": // 網絡連接出錯 TODOToast.makeText(context, "網絡連接出錯", Toast.LENGTH_SHORT).show();break;case "9000": // 操作成功 TODOToast.makeText(context, "訂單支付成功", Toast.LENGTH_SHORT).show();// TODO do something...break;}}}return false; });情況二:未安裝支付寶客戶端
需要在Androidmanifest.xml文件中加入以下代碼,即可進入H5支付流程。
<!-- 支付寶 --> <activityandroid:name="com.alipay.sdk.app.H5PayActivity"android:configChanges="orientation|keyboardHidden|navigation"android:exported="false"android:screenOrientation="behind"android:windowSoftInputMode="adjustResize|stateHidden" />總結
- 上一篇: Linux每日命令
- 下一篇: 编译安装Postfix-2.10.10