支付寶無線快捷登錄接口升級

注:若是公司是在原來已經使用過支付寶老的快捷登陸接口的基礎上做快捷登錄接口升級,那麼可能會遇到麻煩,因爲支付寶老的快捷登錄接口返回的是16位openId(有些叫UserId,現在支付寶都統稱叫OpenId),而新的支付寶快捷登陸接口返回的是32的OpenId!該問題,後面會介紹解決辦法。


支付寶快捷登陸新接口暫時僅支持移動版本的快捷登陸


所以這裏暫時講下支付寶無線快捷登陸的集成的注意事項(支付寶的教程也比較詳細,我這裏主要說下我在集成過程終於到的問題,可以讓後來的小夥伴少走些彎路)


支付寶新版本的快捷登陸集成步驟:

1、簽約

公司需要有公司的支付寶賬號(開發者賬號),作爲商家賬號,支付寶會爲每一個商家賬號分配一個PID,PID只是一個編號,是商家的唯一標識。

在該賬號下面需要與支付寶簽訂“無線賬戶授權V1”協議,簽訂協議後,在該協議下,會爲商家分配對應該協議的APPID。

PID、APPID這兩個東西是支付寶用戶定位商家和支付寶產品的座標,這兩個ID的會貫穿整個與支付寶的交互過程!

協議簽訂完成後,就可以做支付寶快捷登陸功能的集成了!!


2、下載支付寶無線快捷登錄集成教程以及DEMO

我在官網上找了好久的快捷登錄教程,僅僅看到了PC版本的快捷登陸教程,最後無線版本的教程是產品經理髮給我的,我這裏把該教程上次到到CSDN空間,供大家在官網找不到教程的時候在這裏下載:

支付寶無線快捷授權登錄-下載地址


在查看了支付寶的快捷登陸教程後,大家應該大概知道怎麼做了,但是應該還會存在一些問題,但是至少已經知道怎麼生出RSA密鑰、公鑰了吧,所以在繼續下面的步驟的時候,你最好已經有了RSA公鑰、私鑰了


注:RSA是一種加密方式,RSA密鑰分爲公鑰、私鑰兩種,公鑰是對外公開的,而私鑰是需要保密的,所以在接下里的步驟中大家一定要注意公鑰、私鑰的不同使用地方


3、進入支付寶上家服務網站(https://b.alipay.com),維護對應“無線賬戶授權V1”的RSA公鑰,以及一些必要的設置

具體設置步驟請參考其他帖子:

http://blog.csdn.net/lyliyongblue/article/details/45821637


4、完成上面的步驟後,我們手裏已經拿到了如下幾個關鍵的參數:

PID、APPID、RSA私鑰、RSA公鑰、支付寶集成DEMO

爲了減少客戶端的邏輯,以及信息的安全性,我們這裏把大部分邏輯放到後臺實現,讓一些敏感的參數不會被外部獲取到(比如RSA私鑰),所以我下面的代碼僅僅只是後臺代碼邏輯,至於我們的客戶端(Android/IOS等)怎麼寫代碼,參考支付寶DEMO、以及文檔幾乎不會出任何問題


注:在繼續下面之前我假設您已經對支付寶快捷登錄集成有一個大概瞭解了


5、支付寶請求報文(調用支付寶SDK的參數拼接,我這裏稱爲報文)

具體寫法參考支付寶提供的demo,這裏只對一些參數坐下說明:


apiname:com.alipay.account.auth(固定值)

app_id:上面提到過的APPID

auth_type:AUTHACCOUNT(授權登錄就用這個、固定值)

biz_type:openservice(固定值)

app_name:mc(固定值)

product_id:WAP_FAST_LOGIN(固定值)

sin_date:當前系統時間,具體日期格式參考支付寶demo

target_id:這個東西也是必填的,用來標誌每次請求支付寶的唯一請求,我這裏是每次請求生成一個UUID

pid:上面提到過的PID

scope:kuaijie(固定值)


具體的加密步驟以及參數拼接參考支付寶的DEMO就夠了,這裏列舉出來的一些參數都是需要注意的!!


6、支付寶返回的幾種常見的錯誤碼,以及解決辦法

系統繁忙,請稍後再試(ALI164)

報這個錯,一般是值沒有進行步驟4的進行公鑰更新

系統繁忙,請稍後再試(ALI110)

報這個錯,一般是由於與支付寶的協議問題(需要與支付寶籤無線賬戶授權V1協議),若是公司有多個支付寶賬號,一定要確認產品或者商務給你提供的支付寶賬號是否正確。

系統繁忙,請稍後再試(ALI619)

報這個異常,直接意思就是說明RSA簽名有問題,如果報這個錯,那需要檢查下步驟4中的公鑰設置是否正確,若是這個設置沒問題,在檢查下你各個參數的配置是否有問題,支付寶的每個參數值都要加雙引號的


7、關於支付寶無線快捷登陸接口升級中,支付寶返回的UserId,新老接口不一樣的解決辦法

支付寶在開放平臺提供了一個接口alipay.platform.openid.get,通過這個接口,商家可以把存量的UserId從16位升級到32位

支付寶開放平臺地址:http://open.alipay.com/index.htm


這裏我就僅對這個接口調用的時候一些注意點簡要說明下就行了,具體的操作步驟,還是參考支付寶提供的文檔吧。

調用支付寶開放平臺的接口最簡單的方式,就是調用下載支付寶的SDK,使用支付寶提供的SDK開發代碼就很簡單了


public static void main(String[] args) throws AlipayApiException {
	String serverUrl = "https://openapi.alipay.com/gateway.do";
	String appId = "20150115000xxxxx";
	String privateKey = "MIICd........3s2/r0=";
	AlipayClient client = new DefaultAlipayClient(serverUrl, appId, privateKey, "json");
	AlipayPlatformOpenidGetRequest req = new AlipayPlatformOpenidGetRequest();
	req.setBizContent("{\"user_ids\":[\"20889029562xxxxx\",\"20889029562xxxxx\",\"20889029562xxxxx\"]}");
		
	AlipayPlatformOpenidGetResponse res = client.execute(req, null);
	System.out.println(res.getMsg());;
	System.out.println(res.getParams());
	System.out.println(res.getBody());
}

若是你是第一次調用支付寶的開放平臺接口,bizContent的格式一定要參考上面的代碼,這個代碼是同時傳了3個老的支付寶userId,這個接口支持一次1-50個userid。


8、由於支付寶快捷登陸接口,新老接口返回的UserId不一致的問題,若是你是在這個版本才接入支付寶快捷登陸,那恭喜你,你不存在步驟7的問題,可以省掉很多很多很多的麻煩;若是你們公司是在老接口的時候就接入了,那也要恭喜你,你攤上事了!!你不僅需要對存量數據的變更,若是同樣需要支持老版本的登錄接口,那你的登錄、註冊邏輯也要大改了;若是你們公司需要接入支付寶服務窗,那恭喜你,你們公司必須升級支付寶快捷登陸;


反正我們公司現在正在考慮是否進行升級


發佈了26 篇原創文章 · 獲贊 14 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章