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);
            }

    }
}
相关推荐
小徐_23339 分钟前
Wot UI 2.1.0 发布:ConfigProvider 全局配置能力升级
前端·uni-app
前端 贾公子2 小时前
小程序蓝牙打印探索与实践(上)
小程序
拙慕JULY4 小时前
小程序返回 base64 文件报错
开发语言·javascript·小程序
dh131222505254 小时前
按月季度销售业绩核算小程序
小程序·销售小程序·绩效小程序·业绩统计小程序·业绩核算小程序
拙慕JULY5 小时前
微信小程序自定义标题背景色
微信小程序·小程序
qq_229933136 小时前
uniapp踩坑-组件嵌套子组件不触发onReachBottom事件
uni-app
前端 贾公子7 小时前
小程序蓝牙打印探索与实践(下)
小程序·apache
00后程序员张7 小时前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
JackieDYH7 小时前
uniapp vue3 常用的生命周期和作用使用时机
javascript·vue.js·uni-app
PedroQue998 小时前
uni-app路由管理神器:vue-router风格体验
前端·uni-app