日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开源库支付库Magicodes.Pay发布

發布時間:2023/12/4 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开源库支付库Magicodes.Pay发布 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.



Magicodes.Pay,是心萊科技團隊提供的統一支付庫,相關庫均使用.NET標準庫編寫,支持.NET Framework以及.NET Core。目前支持以下支付方式和功能:

  • 支付寶APP支付

  • 支付寶Wap支付

  • 支付寶國際支付

    ? 支持分賬

  • 微信小程序支付

  • 微信APP支付

  • 統一支付回調處理

  • 支持日志函數注入(不依賴支付庫)

  • 支持支付配置函數注入,以便于支持自定義配置獲取邏輯,以應用于不同的場景(比如從配置文件、用戶設置獲取配置,或者多租戶支持)


目前此庫我們在很多項目上已經進行了驗證,由于項目趕工,許多功能我們并沒有添加、遷移或者重構過來,在后續的過程中,我們會逐步來完成這些工作。同時,在Magicodes.Admin開源庫中,我們也編寫了相關的Demo和實現。

Magicodes.Admin開源庫地址:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core

整個支付實現這塊,我們在Magicodes.Admin開源庫中已經提供了統一支付的Demo,而且我們將會提供根據請求頭來自動調用相關支付的功能。如下圖所示:?

在各個業務支付場景中,我們可以非常方便的調用此統一支付,如下圖所示:?

VNext

這是目前的下個版本的規劃:

  • 支付寶PC支付

  • 微信H5支付

  • 提供默認的回調管理邏輯,支持回調處理函數的注入

具體功能我們會根據項目的情況來迭代,如果你有好的建議或者意見,可以關注我們的公眾號“magiccodes”來提交您的意見或者意見。

如何配置

相關庫的配置相對比較簡單,一般均使用相關Builder類來配置自定義日志邏輯、配置獲取邏輯等,具體可以查閱Builder目錄下的代碼。

配置參考

相關配置請參考此代碼:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core/blob/develop/src/unity/Magicodes.Pay/Startup/PayStartup.cs

部分代碼如下所示:

?支付相關代碼可以參考:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core/blob/develop/src/unity/Magicodes.Pay/Services/PayAppService.cs

配置界面參考

?如下圖所示:?

Demo

?微信支付Demo ? ? ? ?if (WeChatPayApi == null){throw new UserFriendlyException("支付未開放,請聯系管理員!");}var appPayInput = new WeChat.Pay.Dto.AppPayInput{Body = input.Body,OutTradeNo = input.OutTradeNo,Attach = input.CustomData,TotalFee = input.TotalAmount,SpbillCreateIp = _clientInfoProvider?.ClientIpAddress};try{var appPayOutput = WeChatPayApi.AppPay(appPayInput);return Task.FromResult(appPayOutput);}catch (Exception ex){throw new UserFriendlyException(ex.Message);}?支付寶支付Demo ?


? ? ? if (AlipayAppService == null)

? ? ? {

? ? ? ? ? ?throw new UserFriendlyException("支付未開放,請聯系管理員!"); ? ? ? ?} ? ? ? ?var appPayInput = new Alipay.Dto.AppPayInput ? ? ? ?{ ? ? ? ? ? ?Body = input.Body, ? ? ? ? ? ?Subject = input.Subject, ? ? ? ? ? ?TradeNo = input.OutTradeNo, ? ? ? ? ? ?PassbackParams = input.CustomData, ? ? ? ? ? ?TotalAmount = input.TotalAmount ? ? ? ?}; ? ? ? ?try ? ? ? ?{ ? ? ? ? ? ?var appPayOutput = await AlipayAppService.AppPay(appPayInput); ? ? ? ? ? ?return appPayOutput.Response.Body; ? ? ? ?} ? ? ? ?catch (Exception ex) ? ? ? ?{ ? ? ? ? ? ?throw new UserFriendlyException(ex.Message); ? ? ? ?}?支付寶國際支付Demo ? ? ? ?if (GlobalAlipayAppService == null){throw new UserFriendlyException("支付未開放,請聯系管理員!");}var payInput = new Alipay.Global.Dto.PayInput{Body = input.Body,Subject = input.Subject,TradeNo = input.OutTradeNo,//PassbackParams = input.CustomData,TotalFee = input.TotalAmount,};try{return await GlobalAlipayAppService.Pay(payInput);}catch (Exception ex){throw new UserFriendlyException(ex.Message);}?國際支付寶分賬參考界面

支付回調
?目的

統一回調處理邏輯和回調處理地址

?代碼參考


上圖的PayAction參考: ? ? ? ?void PayAction(string key, string outTradeNo, string transactionId, int totalFee, JObject data){using (var paymentCallbackManagerObj = iocManager.ResolveAsDisposable<PaymentCallbackManager>()){var paymentCallbackManager = paymentCallbackManagerObj?.Object;if (paymentCallbackManager == null){throw new ApplicationException("支付回調管理器異常,無法執行回調!");}AsyncHelper.RunSync(async () => await paymentCallbackManager.ExecuteCallback(key, outTradeNo, transactionId, totalFee, data));}}

完整回調代碼請參考此代碼:https://gitee.com/xl_wenqiang/Magicodes.Admin.Core/blob/develop/src/unity/Magicodes.Pay/Startup/PayStartup.cs

回調邏輯參考:


掃碼關注

如果喜歡作者的文章,請關注“magiccodes”訂閱號以便第一時間獲得最新內容。本文版權歸作者和湖南心萊信息科技有限公司共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


QQ群:

編程交流群<85318032>?

產品交流群<897857351>?


更多內容,掃碼關注




總結

以上是生活随笔為你收集整理的开源库支付库Magicodes.Pay发布的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。