zoukankan      html  css  js  c++  java
  • 最近接触的几种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支付、信用卡支付,稍稍亟待下!!!!

  • 相关阅读:
    spark的做算子统计的Java代码(在Linux系统集群式运行)
    http协议面试题
    vue响应式原理
    vue-cli3搭建vue项目
    vscode中自定义代码片段
    vue中常用的全局配置
    tomcat安装配置
    Git相关
    nginx配置文件详解
    nginx源码安装
  • 原文地址:https://www.cnblogs.com/wang150601/p/7850767.html
Copyright © 2011-2022 走看看