使用开源项目Alipay.AopSdk.Core完成支付宝网页登录
public IActionResult UserInfoCallBackAli()
{
var alipayClient = new DefaultAopClient(ConfigAli.ServerUrl,
ConfigAli.AppId,
ConfigAli.PrivateKey,
"json",
null,
"RSA2",
ConfigAli.AlipayPublicKey,
"UTF-8",
false);
var alipayRequest = new AlipaySystemOauthTokenRequest();
alipayRequest.Code = Request.Query["auth_code"];
alipayRequest.GrantType = "authorization_code";
var aliUser = new UsersAli();
try
{
var alipayResponse = alipayClient.Execute(alipayRequest);
if (!alipayResponse.IsError)
{
var requestUser = new AlipayUserInfoShareRequest();
try
{
var userinfoShareResponse = alipayClient.Execute(requestUser, alipayResponse.AccessToken);
if (!userinfoShareResponse.IsError)
{
initUserInfo(aliUser, userinfoShareResponse);
var db = DB.GetInstance();
var flag = db.Queryable<UsersAli>().Where(m => m.user_id == aliUser.user_id).Any();
if (!flag)
{
db.Insertable<UsersAli>(aliUser).ExecuteCommand();
ViewData["json"] = "入库成功";
}
ViewData["json"] = "存在记录不用入库";
db.Dispose();
}
}
catch(AopException ex)
{
System.IO.File.AppendAllText("log", ex.ErrorMsg + "\r\n");
ViewData["ex"] = "出错"+ ex.ErrorMsg;
}
}
}
catch(AopException ex)
{
System.IO.File.AppendAllText("log", ex.ErrorMsg + "\r\n");
ViewData["ex"] = "出错"+ ex.ErrorMsg;
}
return View();
}
private void initUserInfo(UsersAli aliUser,AlipayUserInfoShareResponse response)
{
aliUser.user_id = response.UserId;
aliUser.avatar = response.Avatar;
aliUser.nick_name = response.NickName;
aliUser.city = response.City;
aliUser.province = response.Province;
aliUser.gender = response.Gender;
aliUser.user_type = response.UserType;
aliUser.is_certified = response.IsCertified;
aliUser.is_student_certified = response.IsStudentCertified;
//aliUser.is_balance_frozen = userinfoShareResponse.isBalanceFrozen
//aliUser.address = userinfoShareResponse.address
//aliUser.area = userinfoShareResponse.area
//aliUser.business_scope = userinfoShareResponse.businessScope
//aliUser.cert_no = userinfoShareResponse.certNo
//aliUser.email = userinfoShareResponse.email
//aliUser.license_no = userinfoShareResponse.licenseNo
//aliUser.mobile = userinfoShareResponse.mobile
//aliUser.person_birthday = userinfoShareResponse.personBirthday
}
使用开源项目Alipay.AopSdk.Core完成支付宝网页登录的更多相关文章
- ASP.NET Core 使用 Alipay.AopSdk.Core 常见问题解答
1.Alipay.AopSdk.Core.AopException:"您使用的私钥格式错误,请检查RSA私钥配置,charset = UTF-8" 出现这个问题,就是配置不正确.首 ...
- [最新].NET Core ORM 开源项目一览,持续更新
截至2019-05-08共收集27个 .NET Core ORM 开源项目,38个 .NET ORM 开源项目. .NET Core ORM 开源项目收集地址:https://github.com/o ...
- ASP.NET Core 与支付宝开发文档
一.目录 ASP.NET Core 2.0 使用支付宝PC网站支付 ASP.NET Core 2.0 支付宝当面付之扫码支付 常见使用问题解答 已有多个公司数个项目用本组件并上线,稳定使用. 二.项目 ...
- .NET平台开源项目速览(20)Newlife.Core中简单灵活的配置文件
记得5年前开始拼命翻读X组件的源码,特别是XCode,但对Newlife.Core 的东西了解很少,最多只是会用用,而且用到的只是九牛一毛.里面好用的东西太多了. 最近一年时间,零零散散又学了很多,也 ...
- 积极参与开源项目,促进.NET Core生态社区发展
今天早上在微信群里聊天聊到百度的SDK 已经支持.NET Core, 百度已经在3月份就支持了,想起当时还是我在他们的github上提的issue: https://github.com/Baidu- ...
- .NET Core微服务之开源项目CAP的初步使用
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.CAP简介 下面的文字来自CAP的Wiki文档:https://github.com/dotnetcore/CAP/wiki CAP ...
- 【分享】Asp.net Core相关教程及开源项目
入门 全新的ASP.NET: https://www.cnblogs.com/Leo_wl/p/5654828.html 在IIS上部署你的ASP.NET Core项目: https://www.c ...
- 我发起了一个 .Net Core 平台上的 开源项目 ShadowDomain 用于 热更新
大家好, 我发起了一个 .Net Core 平台上的 开源项目 ShadowDomain 用于 热更新 . 简单的说, 原理就是 类似 Asp.net 那样 让 当前 WebApp 运行在一个 A ...
- 这些 .Net and Core 相关的开源项目,你都知道吗?(持续更新中...)
最近更新时间2017-12-28 序列化 Json.NET http://json.codeplex.com/Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Ne ...
随机推荐
- JavaScript遍历对象4种方法和遍历数组的3种方式 代码
//遍历对象 4种方法 //Object.keys(obj).forEach() console.log("keys...遍历</br>") var obj1 = { ...
- SQLServer表、列备注管理
在开发时,为了方便,在SQL SERVER库内对表名.列名进行备注,但在DB部署客户时,想一次清理上述备注值. 特编写如下 SQL,一次清除上述备注内容: declare @table nvarcha ...
- 初学angular项目中遇到的一些问题
1.当angular渲染完成后操作DOM树方法 //当数据渲染完毕 ngApp.directive('repeatFinish', function () { return { ...
- 20175324 2018-2019-2 《Java程序设计》第5周学习总结
20175324 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 抽象类和具体类的区别在于抽象类中有抽象方法而具体类中没有.且抽象类不能实例化. 接口:如果一 ...
- c#基础小练习
1.通过控制台接受输入的数字,将数字放到一维数组中,进行反转数据处理,然后将反转的数据打印到控制台应用程序里 方法一 步骤: 1.添加接收控制台输入的数据变量 2.将接收的字符串转换成一维数组 3.新 ...
- cadence焊盘及元件封装制作
前面学习了元件封装的制作,由于琐碎事情的耽误,加上学习python,没有及时的总结这部分内容,现在做一个补充!
- framework7 入门(数据获取和传递)
数据获取 framework7自带request方法 , var app = new Framework7({...});app.request(parameters) 或者 Framework7.r ...
- python 视图 (FBV、CBV ) 、Request 和Response对象 、路由系统
一.FBV和CBV1.基于函数的view,就叫FBV(Function Based View) 示例: def add_book(request): pub_obj=models.Publisher. ...
- MSSQL事务隔离级别详解(SET TRANSACTION ISOLATION LEVEL)
控制到 Transact-SQL 的连接发出的 SQL Server 语句的锁定行为和行版本控制行为. TRANSACT-SQL 语法约定 语法 -- Syntax for SQL Server ...
- 通过net time同步电脑时间
net use \\192.168.1.112\ipc$ admin /user:admin #第一个admin是密码,第二个admin是用户名: net time \\192.168.1.112 / ...