闽公网安备 35020302035485号


4、调用接口获取用户信息
#region 支付宝网页授权获取userid
/// <summary>
/// 堆代码 duidaima.com
///支付宝授权登录
/// </summary>
/// <param name="Sid">店铺编号</param>
/// <returns></returns>
public ActionResult SupplierAliPay() {
try {
string ReturnUrl = ""; //第一步:获取auth_code接口拼接
var admins = new admins {
Id = 1
}.SelectObject();
string AliRedirect_url = "获取回调地址"; //http请求格式必须与公众平台配置的一致
//注意假如你需要获取到用户的新的的话SCOPe类型使用auth_userinfo,而我在支付那里使用的是auth_base这样不需要用户授权,可以让用户丝毫没有感觉,体验性好
ReturnUrl = "https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id=" + 应用APPid + "&scope=auth_base&state=" + 自定义参数( 非必填) + "&redirect_uri=" + Url.Encode(AliRedirect_url) + "";
return Redirect(ReturnUrl);
} catch (Exception ex) {
return View();
}
}
/// <summary>
///获取用户buyer_id调转AliPaypage获取支付宝账号的userid (授权回调)
/// </summary>
/// <param name="auth_code"></param>
/// <param name="state"></param>
/// <returns></returns>
public ActionResult GetUserAliUserID(string auth_code, string state) {
try {
auth_code = Request.QueryString["auth_code"]; //授权码
state = Request.QueryString["state"];
string AliAppid = ""; //支付宝应用Appid
string Userid = ""; //支付宝用户唯一编号//应用私钥
string YOUR_PRIVATE_KEY = "";
//支付宝公钥
string ALIPAY_PUBLIC_KEY = "";
Aop.Api.IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", AliAppid, YOUR_PRIVATE_KEY, "json", "1.0", "RSA2", ALIPAY_PUBLIC_KEY, "GBK", false);
//获取access_token
AlipaySystemOauthTokenRequest requestAccess_token = new AlipaySystemOauthTokenRequest();
requestAccess_token.GrantType = "authorization_code";
requestAccess_token.Code = auth_code;
AlipaySystemOauthTokenResponse responseAccess_token = client.Execute(requestAccess_token);
Userid = responseAccess_token.UserId; //支付宝用户的唯一userId //responseAccess_token.AlipayUserId;用户的open_id( 已废弃,请勿使用 ) //获取用户信息,通过access_token调用用户信息共享接口获取用户信息 AlipayUserInfoShareRequest requestUserinfo = new AlipayUserInfoShareRequest(); AlipayUserInfoShareResponse responseUserinfo = client.Execute(requestUserinfo, responseAccess_token.AccessToken); string UserName = responseUserinfo.NickName;//昵称 string Address = responseUserinfo.City;//所属城市 string UserImage= responseUserinfo.Avatar;//用户头像 string gender = responseUserinfo.Gender;//M为男性,F为女性, 如果没有数据的时候不会返回该数据,请做好容错return Redirect("/mobile_user/HstyAliPayPayment/AliPayPage?Sid="+Sid+ "&buyer_id="+Userid+"");
} catch (Exception ex) {
return view();
}
}
#endregion