Android支付寶支付

上一篇,我們已經(jīng)詳細講解了Android微信支付,今天接著為大家?guī)碇Ц秾氈Ц叮Ц秾氈Ц断鄬ξ⑿胖Ц兑唵我恍┳还梗虏垡幌拢抑Ц秾毼臋n確實比微信的文檔好了不少框都,下面開始講解支付流程搬素。


1、首先給出官方文檔的地址
Android集成支付寶流程

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

支付流程.png

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

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

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

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

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

然而筆者告訴你寸五,這一大堆,你并不需要耿币,你只要了解一下就行了梳杏。因為實際開發(fā)中幾乎都是在服務器端生成支付的訂單簽名和訂單信息,因為在后臺的安全性比前端要好掰读,在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颂鸿、請求自己服務器促绵,獲取訂單簽名字符串,然后調(diào)用支付寶SDK嘴纺,發(fā)起支付請求

/**
     * 顯示支付寶簽名
     *
     * @param aliPayBean 自己服務器返回的訂單簽名字符串
     */
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é)果,請商戶依賴服務端的異步通知結(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é)果闲擦,需要依賴服務端的異步通知慢味。
                        result = "支付失敗";
                    }
                    ToastUtils.showToast(mContext, result);
                    break;
                }
            }
        }
    };

注意:這里支付成功,我只是以客戶端作為標準墅冷,實際傳支付結(jié)果纯路,最好以服務端為標準,我們調(diào)用支付寶支付的時候寞忿,支付寶會有2個回調(diào)感昼,一個是APP的回調(diào),就是我們上面這個罐脊,9000代表支付成功,一個是支付寶服務器通知我們自己的服務器蜕琴,所以萍桌,我們自己的服務器也有個回調(diào)。所以APP可以請求后臺的接口來獲取支付結(jié)果凌简。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末上炎,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子雏搂,更是在濱河造成了極大的恐慌藕施,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凸郑,死亡現(xiàn)場離奇詭異裳食,居然都是意外死亡,警方通過查閱死者的電腦和手機芙沥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門诲祸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來浊吏,“玉大人,你說我怎么就攤上這事救氯≌姨铮” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵着憨,是天一觀的道長墩衙。 經(jīng)常有香客問我,道長甲抖,這世上最難降的妖魔是什么漆改? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮惧眠,結(jié)果婚禮上籽懦,老公的妹妹穿的比我還像新娘。我一直安慰自己氛魁,他們只是感情好暮顺,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著秀存,像睡著了一般捶码。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上或链,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天惫恼,我揣著相機與錄音,去河邊找鬼澳盐。 笑死祈纯,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的叼耙。 我是一名探鬼主播腕窥,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼筛婉!你這毒婦竟也來了簇爆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤爽撒,失蹤者是張志新(化名)和其女友劉穎入蛆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硕勿,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡哨毁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了源武。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挑庶。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡言秸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出迎捺,到底是詐尸還是另有隱情举畸,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布凳枝,位于F島的核電站抄沮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏岖瑰。R本人自食惡果不足惜叛买,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蹋订。 院中可真熱鬧率挣,春花似錦、人聲如沸露戒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽智什。三九已至动漾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間荠锭,已是汗流浹背旱眯。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留证九,地道東北人删豺。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像愧怜,于是被迫代替她去往敵國和親吼鳞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 支付寶集成過程詳解——運行DEMO 前言叫搁,夢想是需要堅持的,在路上供炎,一路前行渴逻。加油。 這兩天軟件需要集成支付寶了音诫,...
    改昵稱已被占用閱讀 19,032評論 2 39
  • 此項目已開源 趕快來圍觀 Start支持下吧 【客戶端開源地址-JPay】【服務端端開源地址-在com.javen...
    LucasAdam閱讀 1,938評論 0 3
  • 之前寫了一個關于微信支付的博文惨奕,后來有人問我為什么不寫上一個支付寶支付的呢。當初想的是支付寶支付比較簡單竭钝,不像微信...
    2c2z0閱讀 2,080評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評論 25 707
  • 《幸福的種子》讀書第5天梨撞,識字不等于會讀書雹洗,不等于讀懂書,識字是讀書的一種途徑卧波,而不是唯一途徑时肿。 如果為了讀好書而...
    玉雪Ruby閱讀 281評論 0 0