Android支付寶支付功能接入總結(jié)

本文根據(jù)支付寶螞蟻金服官方API和Demo編寫桶错,為博主實際項目開發(fā)中的經(jīng)驗總結(jié),不包含公司和個人有關(guān)信息将谊,相關(guān)密鑰請同學們自己申請冷溶。

隨著智能手機的迅速普及,手機APP的功能也更加智能化尊浓,貼近我們的現(xiàn)實生活逞频。也有更多的互聯(lián)網(wǎng)公司和企業(yè)選擇移動支付的功能,方便消費者可以快速購買他們的產(chǎn)品栋齿。其中國內(nèi)使用最多的是支付寶和微信支付苗胀,下面我們來了解一下在Android設備上怎么接入支付寶的服務。

  • 創(chuàng)建應用
  • 獲得所需數(shù)據(jù)
  • 集成開發(fā)環(huán)境
  • 支付接入

創(chuàng)建應用

第一步我們需要到開放平臺上去創(chuàng)建我們的應用瓦堵。

應用頁面

獲得所需數(shù)據(jù)

這里我們還需要獲取一些支付功能所需要的ID和密鑰基协。

應用的AppID
服務商PID

請務必妥善保管你應用的私鑰和公鑰,以防丟失9接谩澜驮!

由支付寶簽名生成工具生成的密鑰

集成開發(fā)環(huán)境

首先需要從開發(fā)平臺上下載支付寶SDK所用到的相關(guān)Jar包,下載完成后解壓可以得到一個我們需要的jar文件惋鸥。

使用AndroidStudio新建一個Android項目杂穷,并在工程中引入我們的jar包悍缠。

compile files('libs/alipaySdk-20170309.jar')

另外我們還需要在proguard-project.txt文件下添加打包混淆的規(guī)則。

-libraryjars libs/alipaySDK-20150602.jar
 
-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 *;}

接著我們需要在AndroidManifast文件中引入相關(guān)權(quán)限耐量。

<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聲明
```
<activity
            android:name="com.alipay.sdk.app.H5PayActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
</activity>
<activity
            android:name="com.alipay.sdk.auth.AuthActivity"
            android:configChanges="orientation|keyboardHidden|navigation"
            android:exported="false"
            android:screenOrientation="behind" >
 </activity>
```
到這里我們的支付寶SDK就集成好啦飞蚓,接下來我們看看在項目里是怎么去調(diào)用他的。

##支付接入
>以下代碼均運行在沙盒環(huán)境下廊蜒,實際部署請根據(jù)Demo中提示進行趴拧。


我們從官方提供的Demo中復制所有的Java文件到我們的項目里。因為官方為我們做了很完善的封裝山叮,所以并不需要額外實現(xiàn)著榴。復制過來后記得Mark一下項目,檢查有無包引用錯誤聘芜。
``` 
/** 應用APPID */
public static final String APPID = "";
    
/** 商戶信息中的PID 點擊右上角頭像可以看商戶信息*/
public static final String PID = "";
/** 支付寶登錄功能所用的參數(shù)兄渺,這里可以不填 */
public static final String TARGET_ID = "";

/** 私鑰,RSA2算法生成的私鑰 推薦使用*/
public static final String RSA2_PRIVATE = "";
/** RSA算法生成的私鑰 官方已不推薦*/
public static final String RSA_PRIVATE = "";
```

在`PayDemoActivity`文件中汰现,我們需要注意上述的變量挂谍。這里我重新修改了一下他們的注釋,方便各位理解瞎饲。


![](http://upload-images.jianshu.io/upload_images/5201995-51f90828d8539ffb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
最后我們需要關(guān)注的是`OrderInfoUtil2_0`文件的buildOrderParamMap方法口叙,該方法用于構(gòu)建訂單的詳細信息,這里開發(fā)者可以根據(jù)[*官方文檔*](https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.x7kkCI&treeId=204&articleId=105465&docType=1)進行相應的修改嗅战。最后是集成完成后彈出的支付界面妄田。

![](http://upload-images.jianshu.io/upload_images/5201995-feb151b4c8e7c205.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


##FAQ
**1、博主可以提供完整的Demo下載么驮捍?**
不好意思哈疟呐,因為這里包含了項目相關(guān)內(nèi)容,故無法提供詳細Demo供下載东且,有不明白的地方歡迎在下方留言启具!

**2、RSA2的私鑰改怎么申請珊泳?**
這個請根據(jù)官方給出的文檔說明鲁冯,下載簽名軟件進行生成,流程較長這里我就不一一說明了色查,不過官方給的說明還是很詳細的哈薯演!

**3、為什么我支付時顯示40247錯誤秧了?**
可能是APPID沒有支付權(quán)限的問題跨扮,請檢查APP是否擁有APP支付接口的權(quán)限。如果已經(jīng)簽約了APP支付接口,請檢查商戶公鑰是否上傳到對應的appid應用下好港,檢查上傳的商戶公鑰和商戶私鑰是否匹配愉镰。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末米罚,一起剝皮案震驚了整個濱河市钧汹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌录择,老刑警劉巖拔莱,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隘竭,居然都是意外死亡塘秦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進店門动看,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尊剔,“玉大人,你說我怎么就攤上這事菱皆⌒胛螅” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵仇轻,是天一觀的道長京痢。 經(jīng)常有香客問我,道長篷店,這世上最難降的妖魔是什么祭椰? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮疲陕,結(jié)果婚禮上方淤,老公的妹妹穿的比我還像新娘。我一直安慰自己蹄殃,他們只是感情好携茂,可當我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著窃爷,像睡著了一般邑蒋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上按厘,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天医吊,我揣著相機與錄音,去河邊找鬼逮京。 笑死卿堂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播草描,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼览绿,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了穗慕?” 一聲冷哼從身側(cè)響起饿敲,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逛绵,沒想到半個月后怀各,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡术浪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年瓢对,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胰苏。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡硕蛹,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硕并,到底是詐尸還是另有隱情法焰,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布鲤孵,位于F島的核電站壶栋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏普监。R本人自食惡果不足惜贵试,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凯正。 院中可真熱鬧毙玻,春花似錦、人聲如沸廊散。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽允睹。三九已至运准,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間缭受,已是汗流浹背胁澳。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留米者,地道東北人韭畸。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓宇智,卻偏偏與公主長得像,于是被迫代替她去往敵國和親胰丁。 傳聞我的和親對象是個殘疾皇子随橘,可洞房花燭夜當晚...
    茶點故事閱讀 44,629評論 2 354

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