admin管理员组

文章数量:1573690

在蚂蚁开放平台注册申请应用上线

如果你只想看代码,直接跳至最后一步

申请过程就不多说了,申请完成后是 已上线 状态就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}&timestamp={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

本文标签: 支付宝用户信息dome