android 支付宝第三方应用授权,支付宝开发平台—第三方应用授权
支付寶開發平臺——第三方應用授權
制作支付寶AR應用時遇到第三方應用授權,特在此記錄下來供有需要的朋友們參考!如有不足,歡迎補充!!!
1、打開支付寶開發平臺,注冊成為開發者,點擊開發者中心,在我的應用中創建一個應用;點擊功能信息,添加我們需要的功能:
因為我們的應用沒有上線,APPID是無效的,這里阿里給了我們一個解決方案,就是通過沙箱模式進行接口調試,下面我們來配一下我們的沙箱模式:
APPID : 沙箱應用APPID??( *正式環境下的APPID :你開發應用的APPID )
支付寶網關:* 沙箱下的網關: ? ? ? ? https://openapi.alipaydev.com/gateway.do
( *正式環境下的網關 : https://openapi.alipay.com/gateway.do)
RSA2(SHA256)密鑰(推薦) : (配置過RAS2就可以不用配置RAS1了) 生成RSA密鑰方法可參照支付寶文檔 :https://doc.open.alipay.com/docs/doc.htm?treeId=291&articleId=105971&docType=1
應用網關:用于接收支付寶異步通知,如口碑開店中的開發者門店被動通知;實際使用時配置;
授權回調地址:?授權url中的redirect_uri必須與此值相同
AES密鑰:?目前不再使用
(應用網關和授權回調地址,這里因為是本地調試)
做好這些準備工作我們就可以開始進行我們的具體功能實現了,首先我打開支付寶開發平臺開發文檔,點擊基礎能力->第三方應用授權,閱讀一遍內容,我回到文檔的第三步:
注意這里的app_id要填寫沙箱應用的ID,不然是無法完成調用支付登錄頁面的。
url 拼接: https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=沙箱應用APPID&redirect_uri=http://127.0.0.1:8080/aliar_tools/aliar/aliartest.action
下面java后端業務處理:(struts2 框架)
import org.apache.struts2.ServletActionContext;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.request.AlipayOpenAuthTokenAppRequest;
import com.alipay.api.response.AlipayOpenAuthTokenAppResponse;
import com.opensymphony.xwork2.ActionSupport;
public class AliArTestAction extends ActionSupport{
private static final long serialVersionUID = 1L;
/*APPID*/
private static final String APP_ID = "20***50023260";
/*應用私鑰 —— 本地生成的私鑰*/
private static final String APP_PRIVATE_KEY = ?"應用私鑰2048";
/*支付寶公鑰 —— 應用公鑰對應的支付寶公鑰*/
private static final String ALIPAY_PUBLIC_KEY = "支付寶公鑰";
/*訪問應用授權URL時會自動生成 ?app_auth_code
* url 拼接: https://openauth.alipaydev.com/oauth2/appToAppAuth.htm?app_id=2016081500253260&redirect_uri=http://127.0.0.1:8080/aliar_tools/aliar/aliartest.action
*/
private String app_auth_code;
public String getApp_auth_code() {
return app_auth_code;
}
public void setApp_auth_code(String app_auth_code) {
this.app_auth_code = app_auth_code;
}
public String aliartest(){
String str = "";
System.out.println("app_auth_code = "+app_auth_code);
/*
* 正式環境下的網關 : https://openapi.alipay.com/gateway.do
* 沙箱下的網關: ? ? ? ? https://openapi.alipaydev.com/gateway.do
*/
//?? ?AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY,"RSA2");
AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipaydev.com/gateway.do",APP_ID,APP_PRIVATE_KEY,"json","GBK",ALIPAY_PUBLIC_KEY,"RSA2");
AlipayOpenAuthTokenAppRequest request = new AlipayOpenAuthTokenAppRequest();
/*
* grant_type : 授權類型 ; 如果使用app_auth_code換取token,則為authorization_code,如果使用refresh_token換取新的token,則為refresh_token
* code : 授權碼 ; 與refresh_token二選一,用戶對應用授權后得到,即第一步中開發者獲取到的app_auth_code值
* refresh_token : 刷新令牌 ; 與code二選一,可為空,刷新令牌時使用
*/
request.setBizContent("{" +
"\"grant_type\":\"authorization_code\"," +
"\"code\":\""+ app_auth_code +"\"" +
// ? ?"\"refresh_token\":\""+ refresh_token +"\"" +
"}");
AlipayOpenAuthTokenAppResponse response;
try {
response = alipayClient.execute(request);
if(response.isSuccess()){
System.out.println("調用成功");
} else {
System.out.println("調用失敗");
}
str = response.getBody();
System.out.println(response.getBody());
} catch (AlipayApiException e) {
// TODO Auto-generated catch block
e.printStackTrace();
str = "{\"resultCode\":-1,\"resultDesc\":\"aliartest異常\",\"res\":[]}";
}
ServletActionContext.getRequest().setAttribute("userXml",str);
return SUCCESS;
}
}
===============
授權后頁面響應:
{
"alipay_open_auth_token_app_response":?{
"code":?"10000",
"msg":?"Success",
"app_auth_token":?"201744f3904de393dafaf8ae3b4X8",
"app_refresh_token":?"201b9c16be43bfd4b6d86d82752F58",
"auth_app_id":?"20****50023260",
"expires_in":?31536000,
"re_expires_in":?32140800,
"user_id":?"217112581"
},
"sign":?"oMt87ixU/6BmMokewP1ytRiShfk5K3356mp+F6TRbaNZi403FIMSNnf42Ae9/IQWAmDED6VD4KNN8rCs3y0ANQ/OUr4XGVA9R+HaVbX99rlh3ysEOxTyLQwgg8Ek06ZrBoe7LsQ5pVCytcsoQ4MZcP9GkoQ=="
}
注意:?代碼中使用的公鑰 為: 支付寶公鑰,?不是本地生成的公鑰
jdk下載地址:https://doc.open.alipay.com/docs/doc.htm?spm=a219a.7629140.0.0.bj1TCE&treeId=54&articleId=103419&docType=1
總結
以上是生活随笔為你收集整理的android 支付宝第三方应用授权,支付宝开发平台—第三方应用授权的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 现代软件工程 -- 第一周 -- 介绍自
- 下一篇: QQ等级:QQ在线等级说明