登錄 支付寶開放平臺,創建應用 進入應用 在應用信息里設置兩處,授權回調只需要到功能變數名稱即可。 介面加簽方式如下圖 使用“支付寶密鑰生成器”生成,如下圖 將公鑰複製到 介面加簽方式 的公鑰字元。 程式: String auth_code = context.Request.QueryString["au ...
登錄 支付寶開放平臺,創建應用
進入應用
在應用信息里設置兩處,授權回調只需要到功能變數名稱即可。
介面加簽方式如下圖
使用“支付寶密鑰生成器”生成,如下圖
將公鑰複製到 介面加簽方式 的公鑰字元。
程式:
String auth_code = context.Request.QueryString["auth_code"];
String stateStr = String.Empty;
if (String.IsNullOrEmpty(auth_code)) //如果為空表示要獲取
{
String ParkID = context.Request.QueryString["sjh"];
String DeviceID = context.Request.QueryString["deviceid"];
String PayModel = context.Request.QueryString["paymodel"];//支付方式:場內(PayInPark)、出口(PayOutPark)
stateStr = String.Format("sjh={0}&deviceid={1}&paymodel={2}", ParkID, DeviceID, PayModel);
//獲取auth_code
String redirect_uri = "http://www.zftong.cn/Cn.Ubingo/AlipayAuth/GetAlipayAuth.ashx";
redirect_uri = HttpUtility.UrlEncode(redirect_uri);
String accessUrl = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id={0}&scope=auth_base&redirect_uri={1}&state={2}";
String accUrl = String.Format(accessUrl, AlipayConfig.APP_ID, redirect_uri, DESEncrypt.Encrypt(stateStr));
context.Response.Redirect(accUrl, true);
context.Response.End();
return;
}
IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AlipayConfig.APP_ID, AlipayConfig.Pri_Key, "json", "1.0", "RSA2", AlipayConfig.Pub_Key, "GBK", false);
//獲取user_id和access_token
AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
request.GrantType = "authorization_code";
request.Code = auth_code;
AlipaySystemOauthTokenResponse responseAccess_token = client.Execute(request);
//獲取用戶信息 註:在獲取auth_code時,如果是auth_base無法獲取用戶信息,需要auth_user
//AlipayUserInfoShareRequest requestUserinfo = new AlipayUserInfoShareRequest();
//AlipayUserInfoShareResponse responseUserinfo = client.Execute(requestUserinfo, responseAccess_token.AccessToken);
//String UserName = responseUserinfo.NickName;