Uniapp微信小程序开发:微信小程序支付功能后台代码

需要的组件:

SKIT.FlurlHttpClient.Wechat.TenpayV3

代码示例

csharp 复制代码
using SKIT.FlurlHttpClient.Wechat.TenpayV3;
using SKIT.FlurlHttpClient.Wechat.TenpayV3.Settings;

namespace MyWxPay.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class TenPayApiV3Controller : ControllerBase
    {
        [HttpGet("CreateOrder")]
        public async Task<IActionResult> CreateOrder()
        {
            var options = new WechatTenpayClientOptions()
            {
                MerchantId = "微信商户号",
                MerchantV3Secret = "微信商户 v3 API 密钥",
                MerchantCertificateSerialNumber = "微信商户证书序列号",
                MerchantCertificatePrivateKey = System.IO.File.ReadAllText("/微信商户证书私钥文件路径/apiclient_key.pem"),
                PlatformAuthScheme = PlatformAuthScheme.PublicKey,
                PlatformPublicKeyManager = new InMemoryPublicKeyManager()
            };
             var client = WechatTenpayClientBuilder.Create(options).Build();
             var openId = "下单的人的微信OpenId";
             
            var request = new CreatePayTransactionJsapiRequest()
            {
                OutTradeNumber = "设置订单号,一般是传入自己内部系统的订单号",
                AppId = "微信小程序的Appid",
                Description = "测试商品",
                NotifyUrl = "写的支付成功的回调地址,必须是https",
                Amount = new CreatePayTransactionJsapiRequest.Types.Amount() { Total = 设置金额 注意单位是分 },
                Payer = new CreatePayTransactionJsapiRequest.Types.Payer() { OpenId = openId }
            };
                        var response = await client.ExecuteCreatePayTransactionJsapiAsync(request);
            if (response.IsSuccessful())
            {
                Console.WriteLine("PrepayId:" + response.PrepayId);
                List<IDictionary<string, string>> keyValuePairs = new List<IDictionary<string, string>>();

                //传入小程序的appid及微信返回的预支付ID获取想要返回给前端的数据
                var paramMap = client.GenerateParametersForJsapiPayRequest(request.AppId, response.PrepayId);
                keyValuePairs.Add(paramMap);
                IDictionary<string, string> orderdic = new Dictionary<string, string> { { "orderid", "request.OutTradeNumber" } };
                keyValuePairs.Add(orderdic);
                return Ok(keyValuePairs);
            }
            else
            {
                return BadRequest(response.ErrorMessage);
            }

    }
}
相关推荐
万物得其道者成2 小时前
UniApp 与 H5 双向通信完整教程
uni-app
demo007x13 小时前
如何提高 AI 做小程序的效率?
微信小程序·ai编程·claude
2601_9520137613 小时前
新麦同城到家预约上门小程序V3全开源版 vueadmin+unipp开源前端+小程序端
小程序
土土哥V_araolin15 小时前
双迪大健康模式系统开发
小程序·个人开发·零售
2501_9160074716 小时前
HTTPS 抓包的流程,代理抓包、设备数据线直连抓包、TCP 数据分析
网络协议·tcp/ip·ios·小程序·https·uni-app·iphone
css在哪里17 小时前
小程序版 Three.js 入门 Demo(完整可运行)
3d·小程序·threejs
游戏开发爱好者817 小时前
React Native iOS 代码如何加密,JS 打包 和 IPA 混淆
android·javascript·react native·ios·小程序·uni-app·iphone
CHU72903518 小时前
社区生鲜买菜小程序前端功能版块设计及玩法介绍
前端·小程序
2501_9159184118 小时前
iOS mobileprovision 描述文件管理,新建、下载和内容查看
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张18 小时前
iOS 应用程序使用历史记录和耗能记录怎么查?
android·ios·小程序·https·uni-app·iphone·webview