Android開發中的第三方支付SDK的接入與使用(支付寶+微信支付+銀聯)
支付寶微信銀行卡支付SDK接入
支付寶支付:
一. 繫結前提:
- 我們自己要和支付寶簽約(商戶簽約).-->運營完成
- 祕鑰配置-->協助運營完成祕鑰的配置(公鑰互換),可能程式設計師會參與
- 整合支付寶-->必須是程式設計師去做
二. 繫結步驟
整合呼叫支付寶介面進行支付的步驟:
1. 將商戶ID,收款帳號,外部訂單號,商品名稱,商品介紹,價格,通知地址封裝成訂單資訊
2. 對訂單資訊進行簽名
3. 將訂單資訊,簽名,簽名方式封裝成請求引數
4. 呼叫pay方法。
三.支付完成.返回交易結果:
1. 支付結果作為介面返回的字串返回。返回的引數包含在result字串中,具體再進行解析。
2. 支付寶伺服器通知。商戶需要提供一個http協議的介面,包含在引數裡傳遞給安全支付,即notify_url。支付寶伺服器在支付完成後,會用POST方法呼叫notufy_url,以xml為資料格式傳輸支付結果。
具體參考支付寶開發文件或者連結如下:
http://blog.163.com/benben_long/blog/static/19945824320142279427395/
注意:
1. 新增android.permission.INTERNET許可權和android.permission.ACCESS_NETWORK_STATE許可權
二.微信支付
與支付寶類似,運營人員註冊獲取支付功能,得到平臺給的APPID、APPsercet、以及商戶平臺上設定的APP_key
繫結支付步驟
1.註冊registerApp
2.獲取token
3.獲取prepayid
4.呼叫sendReq
二. 服務端簽名,安卓客戶端具體操作如下:
1.把Constants.java,MD5.java,PayActivity.jav,util.java拷貝到專案下,複製wxapi/WXPayEntryActivity.java到專案下;
2.修改微信開放平臺中後臺的包名和簽名,可以用騰訊開放平臺的簽名工具獲取簽名Gen_Signature_Android.apk
(1)AndroidManifest.xml中package名字和專案包名一樣;
(2)AndroidManifest.xml中新增.wxapi.WXPayEntryActivity(不新增,支付成功後無法跳轉到相應的通知Activity介面);
3.具體呼叫參照微信支付開發文件:
4.接收支付結果的WXPayEntryActivity中的onResp函式裡處理支付結果:
微信支付遇到的問題:
微信遇到的具體問題:
1.在demo中找不到APP_KEY,郵箱發過來的沒有此引數,對應文件找到是PaySignKey;
2.測試返回的支付結果是-1,可能產生此問題的地方:包名不一致;應用簽名和後臺不一致。
3.如果是客戶端demo測試,記得注意價格單位是分(呼叫失敗),body是中文的時候需要字元轉換(返回錯誤ERR_JSON)。
客戶端demo測試返回支付結果-1,記得刪除微信緩衝資料(設定-》應用程式管理器->選中微信->清除資料)
可以用demo裡的debug.keystore來測試,功能修改目錄:preferences->android->build->custom debugkeystore->browse。
三. 銀行卡支付SDK
銀聯開發者中心連線
前提:下載安卓版銀聯支付開發包
步驟
1. 匯入銀聯支付依賴包
2. 在res目錄下增加資源包
3. 在Manifest檔案配置裡配置開啟的Activity
4. 獲取TN號 2.
5. 請求控制元件介面(PayActivity)
6. ActivityResult處理支付結果
PS:完全具體版細節與流程請參照官方開發文件.