在蚂蚁开放平台注册申请应用上线
如果你只想看代码,直接跳至最后一步
申请过程就不多说了,申请完成后是 已上线 状态就ok了
下载支付宝开放平台开发助手,生成秘钥
点到生成密匙页面,根据自己需求选择密匙长度和密匙格式,再点击生成密匙即可,应用私匙和应用公匙一定要保存后,后面会用到
到支付宝开放平台的生活号 应用信息页面配置 密匙信息
配置接口加签方式,将刚才获取到的应用公匙填写进去,会返回给你支付宝公匙,将此公匙也好好保存,后面会用到
开始写代码,获取用户信息
接下来基本步骤如下图
拼接url,引导用户访问授权页面
拼接好的url:
https://openauth.alipay.com/oauth2/publicAppAuthorize.htm?app_id="你的appid"&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.com/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.UrlE