• 最近接触的几种APP支付方式——微信app支付


    项目环境是基于mvc .net core的,我们是写的web api形式,刚开始接触还是蛮头痛的,看了官方的dome后就清晰了不少

    首先我们是app支付,要做支付功能应该去微信公众平台上面去申请商户账号,申请通过后,支付功能要再申请一次的

    因为项目在.net core基础上直接引用nuget——Senparc.Weixin.MP,添加引用后就简单了,配置申请的商户MchId,AppId

    调用统一下单接口,核心代码如下

    var data = new TenPayV3UnifiedorderRequestData(

    Config.AppId,
    Config.MchId,
    “备注”",
    "订单号”,
    total_fee,
    model.ClientIp,
    "回调方法url",
    TenPayV3Type.APP,
    "",
    Config.Key,
    TenPayV3Util.GetNoncestr(),
    model.Amount.ToString(),
    null,
    null,
    "",
    );

    var result = TenPayV3.Unifiedorder(data);

    验证返回的签名是否和本地生成签名一致:生成签名方式:

    var handler = new RequestHandler();

     var sign = handler.CreateMd5Sign("key", Config.Key);

    返回给app端支付签名(生成签名方式与上一种不同),生成方式:

    var str = "appid=" +  + "&noncestr=" +  + "&package=Sign=WXPay" + "&partnerid=" + + "&prepayid=" + + "&timestamp=" + timestamp;
    var strg = str + "&key=" + Config.Key;

    var appsign = EncryptHelper.GetMD5(strg);

    至此支付下单完成,下单回调方法后台处理订单信息入库。

    注释:.net core 不能直接获取返回的信息,要稍作处理获取

    var body = HttpContext.Request.Body;
    var buffer = new byte[HttpContext.Request.ContentLength.Value];
    body.Read(buffer, 0, buffer.Length);
    string content = Encoding.UTF8.GetString(buffer);
    var res = XDocument.Parse(content);

    res.Element("xml").Element("return_code").Value

    后续还会分享支付宝支付、paypal支付、信用卡支付,稍稍亟待下!!!!

  • 相关阅读:
    【leetcode】1030. Matrix Cells in Distance Order
    【leetcode】1031. Maximum Sum of Two Non-Overlapping Subarrays
    【leetcode】1032. Stream of Characters
    L120 单词造句
    L119
    L118
    2018.8.6邮件规范一
    L117
    L116
    L115
  • 原文地址:https://www.cnblogs.com/wang150601/p/7850767.html
Copyright © 2020-2023  润新知