龙空技术网

基于.Net Core开发的支付SDK,简化支付功能开发

编程乐趣 705

前言:

当前朋友们对“netcore微信回调”大概比较重视,咱们都想要剖析一些“netcore微信回调”的相关资讯。那么小编在网摘上收集了一些对于“netcore微信回调””的相关资讯,希望朋友们能喜欢,姐妹们快快来了解一下吧!

我是编程乐趣,一个10年.Net开发经验老程序员,点击右上方“关注”,每天为你分享开源项目和编程知识。

在我们做项目中,不管是电商系统、外卖系统、还是上门维修系统等等,都需要支付功能,这就需要我们与第三方支付平台进行对接,但是第三方平台文档,往往都存在很多小细节问题,基本都需要靠调试来完成支付功能,特别是第三平台升级后,我们又需要进行调整,极其浪费时间。

所以,今天给大家推荐一个基于.Net Core开发的支付SDK,让我们可以快速集成支付功能。

项目简介

这是基于.NetCore 开发的支付SDK,支持微信支付、支付宝支付平台,作者一直在迭代升级,支持最新版本.Net Core 7。

技术架构

1、跨平台:这是基于.NetCore开发的系统,可以部署在Docker,Windows,Linux,Mac;

项目结构

src文件夹为支付宝、微信SDK源码,samples文件夹为示例源码。

SDK功能

1、支持:支付宝、微信支付平台,封装了的所有API,简化操作。

2、微信:支持V2、V3版本。

3、示例代码:包含二维码/条码/声波支付、网页支付、H5支付、APP支付,以及退款流程、订单查等功能的示例。

使用示例

网页支付,前端源码

<form asp-controller="Alipay" asp-action="PagePay" target="_blank">    <div asp-validation-summary="All" class="text-danger"></div>    <div class="form-group">        <label asp-for="OutTradeNo"></label>        <input type="text" class="form-control" asp-for="OutTradeNo" value="@DateTime.Now.ToString("yyyyMMddHHmmssfff")" />    </div>    <div class="form-group">        <label asp-for="Subject"></label>        <input type="text" class="form-control" asp-for="Subject" value="电脑网站支付测试" />    </div>    <div class="form-group">        <label asp-for="ProductCode"></label>        <input type="text" class="form-control" asp-for="ProductCode" value="FAST_INSTANT_TRADE_PAY" />    </div>    <div class="form-group">        <label asp-for="Body"></label>        <input type="text" class="form-control" asp-for="Body" value="电脑网站支付描述信息" />    </div>    <div class="form-group">        <label asp-for="TotalAmount"></label>        <input type="text" class="form-control" asp-for="TotalAmount" value="0.01" />    </div>    <div class="form-group">        <label asp-for="ReturnUrl"></label>        <input type="text" class="form-control" asp-for="ReturnUrl" value="; />    </div>    <div class="form-group">        <label asp-for="NotifyUrl"></label>        <input type="text" class="form-control" asp-for="NotifyUrl" value="; />    </div>    <button type="submit" class="btn btn-primary">提交请求</button></form>

后端源码

处理前端请求的参数,并提交至第三方。

/// <summary>/// 电脑网站支付/// </summary>/// <param name="viewModel"></param>[HttpPost]public async Task<IActionResult> PagePay(AlipayTradePagePayViewModel viewModel){    var model = new AlipayTradePagePayModel    {        Body = viewModel.Body,        Subject = viewModel.Subject,        TotalAmount = viewModel.TotalAmount,        OutTradeNo = viewModel.OutTradeNo,        ProductCode = viewModel.ProductCode    };    var req = new AlipayTradePagePayRequest();    req.SetBizModel(model);    req.SetNotifyUrl(viewModel.NotifyUrl);    req.SetReturnUrl(viewModel.ReturnUrl);    var response = await _client.PageExecuteAsync(req, _optionsAccessor.Value);    return Content(response.Body, "text/html", Encoding.UTF8);}

第三方成功异步回调

/// <summary>/// 电脑网站支付异步通知/// </summary>[Route("pagepay")][HttpPost]public async Task<IActionResult> PagePay(){    try    {        var notify = await _client.CertificateExecuteAsync<AlipayTradePagePayNotify>(Request, _optionsAccessor.Value);        switch (notify.TradeStatus)        {            case AlipayTradeStatus.Success: // 支付成功                _logger.LogInformation("电脑网站支付异步通知-交易支付成功 => OutTradeNo: " + notify.OutTradeNo);                return AlipayNotifyResult.Success;            case AlipayTradeStatus.Closed: // 交易关闭                _logger.LogInformation("电脑网站支付异步通知-未付款交易超时关闭,或支付完成后全额退款 => OutTradeNo: " + notify.OutTradeNo);                return AlipayNotifyResult.Success;            case AlipayTradeStatus.Finished: // 交易完结                _logger.LogInformation("电脑网站支付异步通知-交易结束,不可退款 => OutTradeNo: " + notify.OutTradeNo);                return AlipayNotifyResult.Success;            default:                return AlipayNotifyResult.Failure;        }    }    catch (AlipayException ex)    {        _logger.LogWarning("出现异常: " + ex.Message);        return AlipayNotifyResult.Failure;    }}
项目地址

私信回复:1082,获取

我是编程乐趣,一个10年.Net开发经验老程序员,专注开源项目和编程知识分享。

私信回复:【888】,领取.Net视频教程。

- End -

推荐阅读

一个简单、功能完整的WMS仓库管理系统

推荐一个.Net分布式微服务开发框架

一款统计摸鱼时长的开源项目

一个对C#程序混淆加密,小巧但够用的小工具

一个可视化动画算法网站,值得收藏!

标签: #netcore微信回调 #netcore生成二维码