亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android支付寶支付的示例代碼

 更新時間:2017年09月26日 09:23:02   作者:陪你嘮嗑  
本篇文章主要介紹了Android支付寶支付的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

上一篇,我們已經(jīng)詳細(xì)講解了Android微信支付,今天接著為大家?guī)碇Ц秾氈Ц?,支付寶支付相對微信支付要簡單一些,吐槽一下,而且支付寶文檔確實比微信的文檔好了不少,下面開始講解支付流程。

1、首先給出官方文檔的地址

Android集成支付寶流程

2、在開始集成和開發(fā)前,首先了解一下常用的接入方式和架構(gòu)建議:


支付流程.png

在開始下一步之前,給大家看看網(wǎng)上的很多操作.

網(wǎng)上的代碼.png

這一大堆代碼,后面還有,百來行吧,而且支付寶Demo貌似也是這么干的,估計一些新司機(jī)就有點懵逼了,至于嗎?集成一個第三方的,不應(yīng)該是調(diào)用越簡潔越好嗎,而且還是大廠的第三方,不應(yīng)該???所以,筆者有必要出面說明一下,那些老司機(jī),你們弄好了,也不能這么嚇唬新司機(jī)啊,說正經(jīng)的,網(wǎng)上代碼那么長,是因為他們在本地區(qū)生成的訂單簽名,這個訂單簽名也就是一個字符串,他由訂單信息,支付金額,訂單號,商戶信息等拼接起來的

下面是APP支付請求所需的參數(shù)

APP支付請求所需的參數(shù)

App支付請求參數(shù)說明.png

然而筆者告訴你,這一大堆,你并不需要,你只要了解一下就行了。因為實際開發(fā)中幾乎都是在服務(wù)器端生成支付的訂單簽名和訂單信息,因為在后臺的安全性比前端要好,在APP生成,危險性很高,如果你們后臺大哥不給你弄,讓你自己生成,我建議你找他喝點小酒,嘮嘮嗑,好好說說,他估計就同意了。所以網(wǎng)上那種寫一大堆代碼的,實際上是在本地去生成簽名

接下來的事情嘛,就比較簡單了,

3、清單文件做如下配置

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<activity
  android:name="com.alipay.sdk.app.H5PayActivity"
  android:configChanges="orientation|keyboardHidden|navigation|screenSize"
  android:exported="false"
  android:screenOrientation="behind"
  android:windowSoftInputMode="adjustResize|stateHidden" />

 <activity
  android:name="com.alipay.sdk.app.H5AuthActivity"
  android:configChanges="orientation|keyboardHidden|navigation"
  android:exported="false"
  android:screenOrientation="behind"
  android:windowSoftInputMode="adjustResize|stateHidden" />

4、請求自己服務(wù)器,獲取訂單簽名字符串,然后調(diào)用支付寶SDK,發(fā)起支付請求

/**
   * 顯示支付寶簽名
   *
   * @param aliPayBean 自己服務(wù)器返回的訂單簽名字符串
   */
public void aliPayData(AliPayBean aliPayBean) {
    //支付寶支付請求所需的簽名字符串
    final String orderInfo = aliPayBean.getResult().getMessage();
    Runnable payRunnable = new Runnable() {
      @Override
      public void run() {
        PayTask alipay = new PayTask(PaymentActivity.this);
        Map<String, String> result = alipay.payV2(orderInfo, true);
        Log.i("msp", result.toString());

        Message msg = new Message();
        msg.what = SDK_ALI_PAY_FLAG;
        msg.obj = result;
        mHandler.sendMessage(msg);
      }
    };
    // 必須異步調(diào)用
    Thread payThread = new Thread(payRunnable);
    payThread.start();
  }

5、支付寶支付結(jié)果的回調(diào)

//支付寶返回數(shù)據(jù)handler
  @SuppressLint("HandlerLeak")
  private Handler mHandler = new Handler() {
    @SuppressWarnings("unused")
    public void handleMessage(Message msg) {
      switch (msg.what) {
        case SDK_ALI_PAY_FLAG: {
          @SuppressWarnings("unchecked")
          PayResult payResult = new PayResult((Map<String, String>) msg.obj);
          /**
           對于支付結(jié)果,請商戶依賴服務(wù)端的異步通知結(jié)果。同步通知結(jié)果,僅作為支付結(jié)束的通知。
           */
          String resultInfo = payResult.getResult();// 同步返回需要驗證的信息
          String resultStatus = payResult.getResultStatus();
          String result = "";
          // 判斷resultStatus 為9000則代表支付成功
          Log.i(TAG, resultStatus);
          if (TextUtils.equals(resultStatus, "9000")) {
            //支付成功
            result = "支付成功";
            aliPaySuccess();
          } else if ("6001".equals(resultStatus)) {
            result = "您取消了支付";
          } else {
            // 該筆訂單真實的支付結(jié)果,需要依賴服務(wù)端的異步通知。
            result = "支付失敗";
          }
          ToastUtils.showToast(mContext, result);
          break;
        }
      }
    }
  };

注意:這里支付成功,我只是以客戶端作為標(biāo)準(zhǔn),實際傳支付結(jié)果,最好以服務(wù)端為標(biāo)準(zhǔn),我們調(diào)用支付寶支付的時候,支付寶會有2個回調(diào),一個是APP的回調(diào),就是我們上面這個,9000代表支付成功,一個是支付寶服務(wù)器通知我們自己的服務(wù)器,所以,我們自己的服務(wù)器也有個回調(diào)。所以APP可以請求后臺的接口來獲取支付結(jié)果。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • android 網(wǎng)絡(luò)請求庫volley方法詳解

    android 網(wǎng)絡(luò)請求庫volley方法詳解

    這篇文章主要介紹了android 網(wǎng)絡(luò)請求庫volley方法詳解的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • 分享五種Android常用布局方式

    分享五種Android常用布局方式

    Android布局是應(yīng)用界面開發(fā)的重要一環(huán),在Android中,共有五種布局方式,分別是:FrameLayout(框架布 局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局),小編通過本文逐一給大家詳解
    2015-11-11
  • Android表格自定義控件使用詳解

    Android表格自定義控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Android表格自定義控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • android之App Widget開發(fā)實例代碼解析

    android之App Widget開發(fā)實例代碼解析

    本篇文章主要介紹了App Widget框架的實例應(yīng)用,AppWidget就是我們平常在桌面上見到的那種一個個的小窗口,利用這個小窗口可以給用戶提供一些方便快捷的操作。有需要的可以了解一下。
    2016-11-11
  • Android添加(創(chuàng)建)、刪除及判斷是否存在桌面快捷方式的方法

    Android添加(創(chuàng)建)、刪除及判斷是否存在桌面快捷方式的方法

    這篇文章主要介紹了Android添加(創(chuàng)建)、刪除及判斷是否存在桌面快捷方式的方法,涉及Android針對桌面快捷方式的相關(guān)操作技巧,需要的朋友可以參考下
    2015-05-05
  • Flutter實現(xiàn)下拉刷新和上拉加載更多

    Flutter實現(xiàn)下拉刷新和上拉加載更多

    這篇文章主要為大家詳細(xì)介紹了Flutter實現(xiàn)下拉刷新和上拉加載更多,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Android編程之退出整個應(yīng)用程序的方法

    Android編程之退出整個應(yīng)用程序的方法

    這篇文章主要介紹了Android編程之退出整個應(yīng)用程序的方法,實例分析了Android直接關(guān)閉所有的Acitivity并退出應(yīng)用程序的實現(xiàn)技巧,需要的朋友可以參考下
    2015-12-12
  • RxJava2和Retrofit2封裝教程(整潔、簡單、實用)

    RxJava2和Retrofit2封裝教程(整潔、簡單、實用)

    這篇文章主要給大家介紹了關(guān)于RxJava2和Retrofit2封裝的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),整潔、簡單、實用,非常適合大家學(xué)習(xí)使用,需要的朋友可以參考下
    2018-11-11
  • Apache?Cordova?Android原理應(yīng)用實例詳解

    Apache?Cordova?Android原理應(yīng)用實例詳解

    這篇文章主要為大家介紹了Apache?Cordova?Android原理應(yīng)用實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配技巧

    Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配技巧

    今天小編就為大家分享一篇關(guān)于Android 8.0系統(tǒng)中應(yīng)用圖標(biāo)的適配技巧,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論