NCF 如何写微信支付中的小程序支付
2021/5/1 20:25:50
本文主要是介绍NCF 如何写微信支付中的小程序支付,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
上一篇给大家说了APP支付的对接,今天我们来使用NCF快速的对接小程序支付
今天我们讲解到的是微信支付V2开发文档中的使用方法
参考文档
微信支付V2开发文档:https://pay.weixin.qq.com/wiki/doc/api/index.html
NCF仓库地址:https://github.com/NeuCharFramework/NCF (要Star哦)
步骤
1.下载NCF
2.创建自己的XNCF模块
3.引用Nuget包ML.ThirdParty & ML.Common.SDK
4.建立自己的Controller,并创建接口方法
5.调用代码返回数据给前端
6.前端拿数据吊起支付
案例
1.直接到Github上下载NCF的源码master分支
2.请参考NCF开发文档中的创建XNCF模块
3.项目中引入
1 <ItemGroup> 2 <PackageReference Include="ML.Common.SDK" Version="1.0.2.8" /> 3 <PackageReference Include="ML.ThirdParty" Version="1.0.2" /> 4 </ItemGroup>
4.建立自己的Controller,并创建方法
1 //引用相关命名空间 2 using ML.Common.SDK; 3 using ML.ThirdParty.Wechat;
1 /// <summary> 2 /// 微信小程序支付 3 /// </summary> 4 /// <param name="openId">用户的微信OpenId</param> 5 /// <param name="userId">用户Id</param> 6 /// <param name="body">内容</param> 7 /// <param name="totalFee">支付的总金额</param> 8 /// <returns></returns> 9 [HttpPost] 10 public async Task<IActionResult> WxSPPayAsync(string openId,string userId, string body, int totalFee) 11 { 12 try 13 { 14 //ML 方案 15 WechatPayHelper wxpay = new WechatPayHelper(); 16 WechatPaymentParam wxpayParam = new WechatPaymentParam(); 17 wxpayParam.appid = "wx2y0svtzsngwduix6"; 18 wxpayParam.mch_id = "0165355078"; 19 wxpayParam.attach = $"userId={userId};totalFee={totalFee.ToString()}"; 20 wxpayParam.body = body; 21 wxpayParam.total_fee = totalFee.ToString(); 22 wxpayParam.notify_url = "https://www.weixin.com/api/v1/payment/wxSPNotifyUrl"; 23 wxpayParam.trade_type = "JSAPI"; 24 wxpayParam.openid = openId; 25 string strOutTradeNo = ""; 26 var result = wxpay.Payment(wxpayParam, "5hJpKkSaOoWVqET1Gfl7Q3RUEBLTu9kP", out strOutTradeNo); 27 SenparcTrace.Log($"result----{result},sign={strOutTradeNo}"); 28 result = result.Replace("<![CDATA[", "").Replace("]]>", "").Replace("\n", ""); 29 DataTable dtWxPayResponse = XMLHelper.XMLToDataTable(result); 30 var response = dtWxPayResponse.ToJson().Replace("}]", $",\"timestamp\":\"{DateTimeHelper.ConvertToJavaScriptUnix(DateTime.Now)}\"}}]"); 31 32 MakeCallMiniProgramPaymentParam mcmppp = new MakeCallMiniProgramPaymentParam(); 33 mcmppp.appId = "wx2y0svtzsngwduix6"; 34 mcmppp.package = $"prepay_id={dtWxPayResponse.Rows[0]["prepay_id"].ToString()}"; 35 mcmppp.nonceStr = ""; 36 mcmppp.timeStamp = ""; 37 string strSign = ""; 38 var data = wxpay.MakeCallMiniProgramPayment(mcmppp, "5hJpKkSaOoWVqET1Gfl7Q3RUEBLTu9kP", out strSign); 39 string rp = XMLHelper.XMLToDataTable(WechatPayHelper.FormatParamToXML(data)).ToJson(); 40 41 return Success(rp); 42 } 43 catch (Exception ex) 44 { 45 return Fail(ex.Message); 46 } 47 }
5.调用代码返回数据(即4中返回的rp的数据)给前端
6.前端拿数据吊起支付
结语
按照上面的方法让你瞬间解决微信小程序支付的难题,欢迎大家交流,欢迎Star,欢迎关注
这篇关于NCF 如何写微信支付中的小程序支付的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28uniapp 小程序获取到数据库的换行符怎么展示-icode9专业技术文章分享
- 2024-09-20微信小程序全栈项目实战:从零开始的全面指南
- 2024-09-20微信小程序项目实战:零基础入门教程
- 2024-09-19微信小程序项目中miniprogram_npm文件跟node_modules文件的差别-icode9专业技术文章分享
- 2024-08-27小程序 单行显示,超出部分省略号显示的方法代码-icode9专业技术文章分享
- 2024-08-27微信小程序如何获取到特种设备的刘海屏高度-icode9专业技术文章分享
- 2024-08-27微信小程序如何获取苹果手机底部一横线高度信息方法代码-icode9专业技术文章分享
- 2024-08-27微信小程序 顶部状态栏标签背景为none但还是看不到状态栏什么原因-icode9专业技术文章分享
- 2024-08-21微信小程序全栈入门:从零开始的一站式指南
- 2024-08-21微信小程序入门:轻松打造你的第一款小程序