• 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("
    ", "");
    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,欢迎关注

    QQ:365845726 微信:zhao365845726 有兴趣可以加入QQ群: 群号:924439616(ML-Dotnet解决方案)
  • 相关阅读:
    Golang
    Linux美化终端
    MetaSploit Pro 下载地址
    otunnel : 一个和lcx差不多的端口转发的工具
    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
    黑客军火库
    图片后门捆绑利用工具 – FakeImageExploiter
    给自己的QQ群开启腾讯官方的群聊机器人
    ImportError: No module named Crypto.Cipher
    内网渗透小技巧
  • 原文地址:https://www.cnblogs.com/zhao365845726/p/14718147.html
Copyright © 2020-2023  润新知