admin管理员组文章数量:1573363
在蚂蚁开放平台注册申请应用上线
如果你只想看代码,直接跳至最后一步
申请过程就不多说了,申请完成后是 已上线 状态就ok了
下载支付宝开放平台开发助手,生成秘钥
点到生成密匙页面,根据自己需求选择密匙长度和密匙格式,再点击生成密匙即可,应用私匙和应用公匙一定要保存后,后面会用到
到支付宝开放平台的生活号 应用信息页面配置 密匙信息
配置接口加签方式,将刚才获取到的应用公匙填写进去,会返回给你支付宝公匙,将此公匙也好好保存,后面会用到
开始写代码,获取用户信息
接下来基本步骤如下图
拼接url,引导用户访问授权页面
拼接好的url:
https://openauth.alipay/oauth2/publicAppAuthorize.htm?app_&scope=auth_user&redirect_uri=“你的业务页面回调地址”
参数 redirect_uri 需要注意的是,回调域名必须同开放平台设置域名一致
还有一个参数需要注意 scope ,这个参数有两个值,你可以根据你的需要来选择:
auth_base:以auth_base为scope发起的网页授权,是用来获取进入页面的用户的userId的,并且是***静默授权***并自动跳转到回调页的。用户感知的就是直接进入了回调页(通常是业务页面)。
auth_user:以auth_user为scope发起的网页授权,是用来获取用户的基本信息的(比如头像、昵称等)。但这种授权需要用户手动同意,用户同意后,就可在授权后获取到该用户的基本信息。
获取auth_code
授权通过后,会跳转至你的回调页面,此时在你回调页面会添加几个参数,包括auth_code、app_id、scope等,可以通过将这些参数进行保存
获取auth_code
code = Request["auth_code"].ToString();
使用auth_code换取接口access_token及用户userId
注意:sign值获取在最下方代码中
接口 : https://openapi.alipay/gateway.do
请求方式:post
参数:
调用方式:(需要注意的是所有参数都必须先进行一下加密,加密方式由上方charset参数决定,这个参数写什么方式,那么你就需要用什么方式加密,我用的是utf-8)
示例:
ali_appid = HttpUtility.UrlEncode(你的appid, Encoding.UTF8);
string grant_type = HttpUtility.UrlEncode("authorization_code", Encoding.UTF8); //值为authorization_code时,代表用code换取;值为refresh_token时,代表用refresh_token换取
string charset = HttpUtility.UrlEncode("UTF-8", Encoding.UTF8); //加密方式
string code = HttpUtility.UrlEncode(auth_code, Encoding.UTF8); //上一步获取的auth_code
string method = HttpUtility.UrlEncode("alipay.system.oauth.token", Encoding.UTF8); //接口名称
string sign_type = HttpUtility.UrlEncode("RSA2", Encoding.UTF8); //商户生成签名字符串所使用的签名算法类型
string timestamp = HttpUtility.UrlEncode(填写当前时间, Encoding.UTF8); //当前时间 ,格式"yyyy-MM-dd HH:mm:ss"
string version = HttpUtility.UrlEncode("1.0", Encoding.UTF8); //调用的接口版本,固定为:1.0
signvalue = HttpUtility.UrlEncode(signvalue, Encoding.UTF8); //sign 这一步获取额外说明
//调用接口
string url = string.Format("https://openapi.alipay/gateway.do?app_id={0}&grant_type={1}&code={8}&charset={2}&method={3}&sign_type={4}×tamp={5}&version={6}&sign={7}", ali_appid, grant_type, charset, method , sign_type, timestamp, version, signvalue,code);
// 获取的值进行处理
string result = HttpClientHelper.PostResponse(url);
JObject outputObj = JObject.Parse(result);
ali_accesstoken = outputObj["alipay_system_oauth_token_response"]["access_token"].ToString();
ali_userid = outputObj["alipay_sy
版权声明:本文标题:c#支付宝生活号 获取用户信息,不使用dome 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1727746077a1127818.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论