支付宝小程序获取用户的user_id案例

官方文档:https://docs.alipay.com/mini/introduce/auth

一、首先获取authcode

官方文档:https://docs.alipay.com/mini/api/openapi-authorize

my.getAuthCode({
  scopes: 'auth_base',
  success: (res) => {
	// res.authCode
	//发送授权码到服务后台进行解析
    // 根据authcode,调用后台接口,获取用户ID
  }
});

二、根据authcode获取用户ID(user_id)

服务端SDK文档:https://docs.open.alipay.com/54/103419/

如果要获取用户昵称、头像,还需要先进行用户授权

解析授权码

/// <summary>
/// 获取支付宝用户id
/// </summary>
/// <param name="auth_code">小程序授权码</param>
/// <param name="app_id">appid</param>
/// <param name="merchant_private_key">应用私钥,和应用公钥匹配 在密钥生产器中可见</param>
/// <param name="alipay_public_key">支付宝公钥(区别于应用公钥),开放平台中接口加签方式中可见</param>
/// <returns></returns>
public static string GetUserID(string auth_code, string app_id, string merchant_private_key, string alipay_public_key)
{
	string result = "";
	
	try
	{
		IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", app_id, merchant_private_key, "json", "1.0", "RSA2", alipay_public_key, "GBK", false);
		AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest();
		request.GrantType = "authorization_code";
		request.Code = auth_code;
		request.RefreshToken = "";
		AlipaySystemOauthTokenResponse response = client.Execute(request);
		JObject jobj = (JObject)JsonConvert.DeserializeObject(response.Body);
		JObject jk = (JObject)jobj["alipay_system_oauth_token_response"];
		if (jk.Property("code") == null)
		{
			string user_id = jobj["alipay_system_oauth_token_response"]["user_id"].ToString();
			result = ReturnInfo.ListReturn("S", "", user_id);
		}
		else
		{
			string msg = jobj["alipay_system_oauth_token_response"]["msg"].ToString();
			result = ReturnInfo.ListReturn("E", msg, "");
		}
	}
	catch (Exception ex)
	{
		result = ReturnInfo.ListReturn("E", ex.Message, "");
	}
	return result;
}

获取用户信息

      my.getAuthUserInfo({
          success: (res) => {
            console.log("用户信息:" + JSON.stringify(res))
            var nickName = res.nickName;
            var avatar = res.avatar;
            });
          },
          fail: err => console.log(err)
        });

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JackieDYH

谢谢您嘞!我会继续加油地

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值