天天看點

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

我本來是想直接講Android支付這一塊的,包括支付寶,微信,其他第三方整合支付等,但是微信開放平台他對我的賬号做了限制,所有我今天就先把重心放在支付寶的支付上,也算是寫得盡可能詳細些吧,畢竟是第三方的SDK,隻要我們耐心的閱讀文檔和開發引導,這個其實不是很難的,我也是沒有用過支付寶的支付,但是我相信,你看完這篇部落格,也會對他了如指掌的,好的,我們正文開始

1.登入官網

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

建立應用

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

建立成果之後有很多的選項包括需要你上傳

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

這些先不管,我們這個時候可以看到已經拿到了APPID: 2017062807585767,這樣我們就可以繼續下一步的準備了

3.簽約

大部分的功能需要簽約才能使用,很遺憾,我這個個體戶就不行了

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

4.配置密鑰

配置秘鑰是支付這一環節很重要的因素,也是分了兩個步驟,生成秘鑰和配置秘鑰,這裡使用的RAS非對稱加密

<a href="https://docs.open.alipay.com/291/105971">生成RSA秘鑰</a>

我們按照文檔上來,首先是下載下傳工具了,這裡有win和mac兩個位址,我是win,下載下傳下來是這個樣子的

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

我們按照圖中的配置拿到了公鑰和私鑰

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

那我們可以配置了,我們找到項目詳情

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

然後這裡是兩種方式,我們選擇的是RSA方式麼其實哪種方式都是可以的

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

到這裡,這個也配置好了

5.SDK 下載下傳

這個壓縮包下載下傳下來什麼都有,要找到Android的部分

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

我們現在就開始來把jar內建進去,支付寶給我們提供的就是一個jar,我們放進我們的工程裡面去

并且在我們的app/build.gradle裡配置一下

這樣Jar就內建好了,然後配置一下清單檔案

并且添權重限

如大于等于Android6.0,還需要動态申請下權限

如果你的項目需要混淆,需要添加混淆規則

嗯,可以說得上是比較簡單的,我們繼續

其實支付寶的調用還是比較簡單的,我們來看一下我的調用方式

可以看到我們并沒有多少代碼,調用起來

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

但是還是提示有錯誤,我們來看一下他的傳回值

這是因為我們這個應用并沒有去簽約功能,所有并沒有這個權限,好的,但是起碼可以看出我們已經可以調用支援包的支付了,那我們繼續來了解他的功能吧

首先我們看下他提供的OrderInfoUtil2_0這個工具類

而我們一開始就需要建構訂單參數清單,就是這個方法

這個方法我們來解讀一下吧,他其實就是建構一個Map的鍵值對,都有哪些内容呢

app_id(key)

biz_content(内容)

charset(編碼)

method(方法)

sign_type(簽名類型)

timestamp(時間戳)

version(版本)

這個demo裡面可能都是寫死了,但是如果我們真的要在實際應用中開發支付的話,這裡要填寫正确,我們主要關心的有方法和簽名類型還有版本這三個

方法有幾個類型,要注意一下

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

其次就是簽名方式了,有兩種,RSA和RSA2

最後就是版本,版本可以通過PayTask去擷取

而關于biz_content,就需要你們自己去定義了,我們來看下全部的參數說明

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

當我們拿到map之後就可以轉換成一個string作為請求資訊了,可以看到我們使用的是這個方法

他的本質就是拼接出最後的訂單資訊,如圖

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

好的,現在訂單詳情已經有了我們就可以把訂單加密了

這裡的加密主要還是用到了SignUtils

而SignUtils則啟動了Base64

這些你都可以在我寫的demo裡擷取到的,我們繼續分析就是了,當加密成功之後他會傳回一個sign的字元串給我,這就是加密資訊,然後通過 訂單資訊 &amp; 加密訂單這種公式就拼接出商品資訊

好的,我們的下單需要在異步中操作,也就是我們所見到的Runnable

在這裡他同樣的是建構一個PayTask 區調用payV2,裡面的參數就是訂單資訊和一個boolean值,具體參數可以參考

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

好的,當我們拿到結果後通過Handler回到UI線程

這裡其實PayResult隻是把結果幾個關鍵資訊提取出來了

Android接入支付寶實作支付功能Android接入支付寶實作支付功能

好的,事實上在實際開發中,要做的準備工作并不隻是這麼點,畢竟涉及到支付這個敏感話題,我這邊也隻是個人商戶,沒辦法給大家展示正确的結果了,可能有些疏漏,但是大體就是這樣,比微信稍微要簡單點,我們下次細聊下微信支付,我們感覺去注冊個賬号去~~~

對文章有興趣的可以關注一下我的微信公衆号或者QQ群

Android接入支付寶實作支付功能Android接入支付寶實作支付功能
Android接入支付寶實作支付功能Android接入支付寶實作支付功能

繼續閱讀