0755-26913476
您的當前位置:主頁 > 經驗交流 > 技術文檔 >

Android App支付系列(二):支付寶SDK接入詳細指南

時間:2017-07-07

前言

一家移動互聯網公司,說到底,要盈利總是需要付費用戶的,自己開發支付系統對于資源有限的公司來說顯然不太明智,國內已經有多家成熟的移動支付提供商,阿里就是其中之一。 
《 Android App支付系列(一):微信支付接入詳細指南》之后,有部分讀者反饋,希望寫一篇支付寶app支付sdk的接入博文。 
筆者在此總結了下阿里旗下支付寶Android SDK支付的接入流程,供后來者參考。

本篇文章已授權微信公眾號 guolin_blog(郭霖)獨家發布.

接入流程如下:

1 簽約成為支付寶商戶

簽約地址:https://b.alipay.com/, 
只有成為簽約商戶的開發者才能具備集成支付寶app支付的資格。 
簽約資料:1)營業執照 2)APP說明文檔 3)商戶經營信息、商戶聯系人等信息 
必要時還需提供APP apk以備審核。審核通過后即可進行代碼集成。

審核通過后,可得到支付寶分配的商戶號等信息。

2 客戶端代碼集成準備

2.1 導入jar包資源

目前最新版支付寶開發jar包下載地址:http://download.csdn.net/detail/xiong_it/9566771 
下載后將之拷貝libs目錄,Eclipse會自動添加依賴,Android Studio需在app的gradle中添加一行

 

點擊右上角:Sync Now,稍等片刻

2.2 修改AndroidManifest.xml清單

聲明必要Activity



添加必要權限


2.3 添加支付寶混淆規則

 

3 客戶端代碼集成

支付寶交互流程示意圖 
支付寶交互流程圖

流程圖白話版解釋

  1. app攜帶支付信息調用支付接口請求支付寶客戶端調起支付界面;
  2. 用戶操作,輸入密碼支付,支付成功;直接返回取消支付;出現錯誤,支付失??;進入支付界面,但輸入密碼支付,支付待確認;
  3. 支付寶客戶端將支付結果告訴app客戶端,商戶服務器通知app服務器支付結果;
  4. app客戶端處理支付結果;
  5. app服務器處理支付結果。

支付寶的支付流程較之微信的支付流程圖少了一步app服務器端訂單的生成,但是在其demo代碼中是推薦使用app服務器進行sign簽名過程的,于是筆者索性是按照的微信支付的流程(微信支付交互流程)去集成的。

  • 客戶端代碼得到用戶購買的商品信息,將之傳給自己公司app服務器,參數包含但不限于以下:


 

注意:支付寶支付的人民幣單位和微信支付,銀聯支付稍有不同,需以:元 作為支付單位。其他兩者支付單位為:分 
其他參數均交給咱們app服務器處理即可,詳細參數請點擊:https://doc.open.alipay.com/doc2/detail?treeId=59&articleId=103663&docType=1

  • app服務器參考上述詳細參數鏈接,得到sign(支付簽名信息)字段并返回sign字段給手機客戶端;
  • 手機客戶端使用sign簽名信息在非UI線程調起支付客戶端進行支付; 
    用戶操作:輸入密碼進行支付;返回鍵取消支付;進入支付界面,用戶未進行支付,用戶返回,待支付;網絡無連接支付失敗等;
  • 客戶端得到支付結果;
  • 支付寶服務器異步通知咱們公司app服務器支付結果(服務器的工作,與客戶端無關)

這樣做的好處:簽名邏輯在服務器完成,app無需暴露公鑰和私鑰,更安全。同時也是demo中的推薦做法。

更詳細的支付寶接入交互流程解釋請點擊:https://doc.open.alipay.com/doc2/detail.htm?spm=a219a.7629140.0.0.7WO30X&treeId=59&articleId=103658&docType=1

4 客戶端代碼示例

支付調起代碼(須在子線程)



支付處理代碼(UI線程)

 

注:AliPayResult.Java來自支付寶demo中的PayResult.Java 
至此,集成支付寶SDK結束。祝各位集成支付寶支付成功!

結束語

本文作者:xiong_it,本文鏈接:http://blog.csdn.net/xiong_it/article/details/51819559 
app服務器接入注意事項:官方給出的填寫rsa公鑰的地址有誤,無論填寫什么都提示:公鑰格式錯誤。需要移步至:支付寶公鑰填寫正確地址填寫

udpate 20160714 
近期登錄開發平臺,發現已改版,在原址填寫rsa公鑰即可.請各位知悉.

按照慣例,附上支付寶SDK接入的官方demo下載鏈接:https://doc.open.alipay.com/doc2/detail.htm?treeId=54&articleId=104509&docType=1
 

閱讀本文的人還閱讀:
Android App支付系列(一):微信支付接入詳細指南
Android開發:使用EasyPay打造全能移動支付框架