网易首页 > 网易号 > 正文 申请入驻

.NET5快速接入支付宝扫码支付

0
分享至

最近一个朋友的老板让他支付宝支付,但是他没搞过这事啊,然后找到我,让我帮他搞一下,然后找他老板给点小费,反正闲着也是闲着,最近生活非常拮据啊,所以就应下来了。

在开始之前需要先去->,创建应用、为应用添加功能包、设置接口加签方式等开发信息,具体操作可以去开发者中心查看相关文档,由于支付宝的所有参数和设置都是由朋友那边准备好的,所以我也就省去了这一步,等这些基本工作都准备好后,就开始开始编程之旅了。

支付宝开发平台

开发者中心

其实我也没有接入过支付宝支付,先去Nuget或者Github搜素一番,看有没有官方SDK或者是开源库可以方便快捷的接入支付功能,

结果非常好,找打了,那么 直接通过NuGet管理面板搜索进行安装,或者通过.NET CLI 执行来进行安装。当然,喜欢哪种方式自行选择。安装好后,先就需要进行,我在里面新增了一个的配置节点,用于配置支付宝支付的相关参数

Alipay Easy SDK for .NET

AlipayEasySDK

dotnet add package AlipayEasySDK

SDK

支付宝的参数配置

appsetting.json

Alipay

"Alipay": { "Protocol": "https", "GatewayHost": "openapi.alipay.com", "SignType": "RSA2", "AppId": "AppId", "NotifyUrl": "回调地址", "MerchantPrivateKey": "应用的私钥", "AlipayPublicKey": "支付宝公钥" }

我采用的的偷懒做法,官方推荐推荐,

加签模式为公钥模式

加签模式为公钥证书模式

配置文件配置好后,我们就可以去初始化我们的支付宝配置了Startup.cs

Config alipayConfig = Configuration.GetSection("Alipay").Get

(); Factory.SetOptions(alipayConfig);

是不是感觉有些,现在就可以去调用提供的API来发起支付了。我们先来做一个二维码扫码支付

so easy

SDK

AlipayTradePrecreateResponse response = Factory.Payment.FaceToFace().PreCreate("商品名称", "订单id", "金额");if (ResponseChecker.Success(response)){ string qrCode=response.QrCode; //二维码支付地址}

会给我们返回一个二维码支付的支付,我们需要自己来生成二维码**(可以前端生成,也可以后端生成)**,我这里就是用的后端生成,这里我通过Nuget安装了一个叫的类库,使用起来也是非常方便的。

Factory.Payment.FaceToFace().PreCreate

SkiaSharp.QrCode

using (var generator = new QRCodeGenerator()) { var qr = generator.CreateQrCode("支付宝二维码地址", ECCLevel.L); var info = new SKImageInfo(120, 120); using (var surface = SKSurface.Create(info)) { var canvas = surface.Canvas; canvas.Render(qr, info.Width, info.Height); using (var image = surface.Snapshot()) using (var data = image.Encode(SKEncodedImageFormat.Png, 100)) { return File(data.ToArray(), "image/jpeg"); } } }

最后就可以实现这样的效果。

但是这样有个不好的地方,就是不知道实时的支付状态,所以,我就准备了另外一种方式,PC端跳转到支付宝页面支付

AlipayTradePagePayResponse response= Factory.Payment.Page().Pay("火锅", "00000009929929", "0.01", "http://www.baidu.com");if (ResponseChecker.Success(response)){ string html=response.Body; //html代码,嵌入前端会自动跳转至支付宝页面}

Factory.Payment.FaceToFace().PreCreate("商品名称", "订单id", "金额","支付成功后的跳转地址")

我们把这段html嵌入到页面中,就可以看到自动跳转至支付宝页面

此时,我们扫码后就会看到有实时的处理状态

支付宝支持成功的结果有异步回调和主动查询两种方式,一般来说,会两种方式同时使用,因为,谁也说不准,异步回调的时候会不会出问题。这里我就只演示一下异步回调的方式,我先新建一个接口来接口我们的回调参数

[HttpPost("payNotify")] public string PayNotify(){ IFormCollection collection = HttpContext.Request.Form; ICollection

keys = HttpContext.Request.Form.Keys; Dictionary

alipayResult = new Dictionary

(); foreach (string key in keys) { alipayResult.Add(key, collection[key]); } }

,既然是异步回调,那么肯定是让支付宝能够访问到我们的接口,所以,我们需要把我们的接口暴露到外网。这里我用的是,因为它可以免费创建两个通道,代理方式也是非常简单的,直接新建通道,然后下载对应版本的程序,通过命令行的方式运行即可

natapp

好了,这里我们就可以把我们的回调地址配置到刚才的配置文件中了,现在,我们来支付一分钱看看我们的劳动成果

http://v6thj2.natappfree.cc/api/PayCallback/payNotify

可以看到,我们支付成功后,支付宝会通知我们支付结果,在我们接到通知结果后,要记得验签和支付金额,然后去处理自己的业务逻辑。好了,.NET5接入支付宝支付就简单的讲这么多了。希望能对大家有所帮助。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
奥组委邀请王曼昱参加单打!巴黎女单名额再起风波,体总公开回应

奥组委邀请王曼昱参加单打!巴黎女单名额再起风波,体总公开回应

刺头体育
2024-06-19 13:11:27
《墨雨云间》:为什么剧里没有一个姑娘喜欢他?

《墨雨云间》:为什么剧里没有一个姑娘喜欢他?

山水缥缈
2024-06-19 04:50:42
丁进勇辞去越共中央政治局委员和河内市委书记职务

丁进勇辞去越共中央政治局委员和河内市委书记职务

财联社
2024-06-19 22:37:05
南医大处罚教师后续:举报者身份被扒,上课画面曝光,官方新回应

南医大处罚教师后续:举报者身份被扒,上课画面曝光,官方新回应

凯旋学长
2024-06-17 18:02:40
女子开使馆车堵路后续!同行男子身份太神秘,北京交警评论区沦陷

女子开使馆车堵路后续!同行男子身份太神秘,北京交警评论区沦陷

a胡的生活
2024-06-20 05:40:36
一单亲妈妈穿“露奶装”送娃上学,男家长:光着整个脊背成何体统

一单亲妈妈穿“露奶装”送娃上学,男家长:光着整个脊背成何体统

知秋侃史
2024-06-12 04:14:35
河南冷藏车事故遇难者亲属:善后工作已完成

河南冷藏车事故遇难者亲属:善后工作已完成

鲁中晨报
2024-06-19 14:27:03
缪昌文,重返江苏履新

缪昌文,重返江苏履新

鲁中晨报
2024-06-19 22:56:03
世卫组织呼吁:停止使用电热水壶,否则会诱发癌症?真相来了!

世卫组织呼吁:停止使用电热水壶,否则会诱发癌症?真相来了!

青栀伊人
2024-06-18 21:53:54
普京正式访问朝鲜,金正恩用最高礼仪接待,36岁胞妹惊艳亮相

普京正式访问朝鲜,金正恩用最高礼仪接待,36岁胞妹惊艳亮相

阿离家居
2024-06-19 23:17:12
上海这一夜,由王中磊牵头的明星聚会,将华谊的落魄展现淋漓尽致

上海这一夜,由王中磊牵头的明星聚会,将华谊的落魄展现淋漓尽致

小韩的幸福生活
2024-06-19 20:24:03
两性疑问:为什么男生更喜欢从后面来

两性疑问:为什么男生更喜欢从后面来

坟头长草
2024-05-30 16:33:38
社保最低缴费年限或将提高10年,以后如何规划养老金?

社保最低缴费年限或将提高10年,以后如何规划养老金?

财商路人蚁
2024-06-19 15:53:19
越闹越大!奥数教练质疑姜萍造假,多位数学大咖点赞,达摩院回应

越闹越大!奥数教练质疑姜萍造假,多位数学大咖点赞,达摩院回应

西瓜爱娱娱
2024-06-19 10:29:38
费迪南德:福登的情况之前在曼联见过,贝隆就是因为基恩才离开

费迪南德:福登的情况之前在曼联见过,贝隆就是因为基恩才离开

直播吧
2024-06-19 20:13:13
5死!内蒙古突发刑案,悬赏3万!网友爆料重要信息,太悲催了…

5死!内蒙古突发刑案,悬赏3万!网友爆料重要信息,太悲催了…

火山诗话
2024-06-19 13:51:28
女子开使馆车叫嚣有豁免权后续:处理来了 工作恐难保 道歉遭群嘲

女子开使馆车叫嚣有豁免权后续:处理来了 工作恐难保 道歉遭群嘲

鋭娱之乐
2024-06-19 15:15:22
中国体坛新历史!张之臻逆转梅总,中国男网首胜大满贯+前世界第1

中国体坛新历史!张之臻逆转梅总,中国男网首胜大满贯+前世界第1

黑色柳丁
2024-06-20 02:37:50
6月18日俄乌:各方愈发强硬,满足俄罗斯损失更多的期望

6月18日俄乌:各方愈发强硬,满足俄罗斯损失更多的期望

山河路口
2024-06-18 17:20:38
媒体人:欧洲杯VAR检查后取消进球,现场大屏会告知原因

媒体人:欧洲杯VAR检查后取消进球,现场大屏会告知原因

直播吧
2024-06-19 16:51:05
2024-06-20 07:14:44
自学编程之道
自学编程之道
分享自学编程的心得,分享实用开源项目
48文章数 240关注度
往期回顾 全部

科技要闻

618观察:谁为高强度的低价竞争买单?

头条要闻

欧洲杯:苏格兰1-1瑞士 沙奇里无解世界波

头条要闻

欧洲杯:苏格兰1-1瑞士 沙奇里无解世界波

体育要闻

欧洲杯最大的混子,非他莫属

娱乐要闻

黄一鸣“杀疯了” 直播间卖大葱养孩子

财经要闻

深化科创板改革 证监会发布八条措施

汽车要闻

双肾格栅变化大/内饰焕新 新一代宝马X3官图发布

态度原创

时尚
艺术
手机
教育
军事航空

几个小物件,打造宅家时的「inner peace」

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

手机要闻

Android 15将重新定义“快速充电”标准:从7.5W提高到20W

教育要闻

你好高校 | 对话北京航空航天大学

军事要闻

以色列涉嫌在加沙使用重型炸弹 或多次违反战争法

无障碍浏览 进入关怀版