支付寶生活號獲取會員信息,詳細(xì)文檔見https://fuwu.alipay.com/platform/doc.htm#c0503
簡單說一下開發(fā)步驟:
1.? 登錄支付寶開放平臺(螞蟻金服開放平臺)。https://open.alipay.com/
2.? 進(jìn)入開發(fā)者中心,創(chuàng)建應(yīng)用,并申請應(yīng)用上線。
3.? 簽約——服務(wù)窗功能、獲取會員信息功能。
4.? 設(shè)置 授權(quán)回調(diào)路徑 和 接口加簽方式(選擇RSA2(SHA256)密鑰)
密鑰 生成 需要下載支付寶提供的生成工具。
下載工具鏈接 : https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7386797.0.0.iZGFov&treeId=291&articleId=105971&docType=1
選擇2048,生成后綁定到支付寶開發(fā)中心。
5.? 下載支付寶SDK,(把jar包打入maven倉庫,括號里非必須)
https://doc.open.alipay.com/doc2/detail?treeId=54&articleId=103419&docType=1
6. ?下載服務(wù)窗Demo
https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.5l3Mkk&treeId=54&articleId=104507&docType=1
我用的JAVA版本,其中DEMO里有這么一段坑爹的代碼
使用DEMO測試,一直報(bào)token無效,找了很久終于找到問題所在,
標(biāo)紅的代碼存在問題,修改后的代碼如下:
AlipayUserInfoShareRequest userinfoShareRequest =newAlipayUserInfoShareRequest();
AlipayUserInfoShareResponse userinfoShareResponse = alipayClient.execute(
userinfoShareRequest,oauthTokenResponse.getAccessToken());
通過2處代碼比較可以發(fā)現(xiàn),是不是支付寶的程序猿晚上加班太晚,多寫了個User
如果該問題還未解決,查看以下是否正確
1、如果只是網(wǎng)頁獲取用戶OpenId,URL拼接規(guī)則,https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&auth_skip=false&scope=auth_base&redirect_uri=ENCODED_URL
如果是獲取用戶頭像、昵稱等詳細(xì)信息,URL拼接規(guī)則https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=APPID&scope=auth_user&redirect_uri=ENCODED_URL
不管是哪一種,重定向的URL需要encode
2、檢查是否開啟服務(wù)窗功能、 獲取會員信息功能
3、檢查簽名方式,文檔里寫只支持RSA加密方式,其實(shí)RSA,RSA2都是支持的。
題外話:記一個生活號的問題, 生活號內(nèi)部可能出現(xiàn)打不開http協(xié)議的網(wǎng)頁,是因?yàn)橹Ц秾毶钐枌?移動運(yùn)營商廣告攔截的原因, 配置成https協(xié)議就可以避免這個問題