首页 > 其他分享 >轻量级.net standard微信支付登录Nuget开源库

轻量级.net standard微信支付登录Nuget开源库

时间:2024-03-15 16:55:20浏览次数:25  
标签:code 商户 微信 程序 standard 支付 var 轻量级 wx

我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验支付和登录效果。

本库主要实现了native pay(二维码支付)jsapi pay(小程序直接调起支付),需要注意的是这是基于api3的,非api2。

以下演示如何使用:

第一步 搜索安装ZmjWxApi

打开nuget,直接搜索和安装ZmjWxApi,如下图:

第二步 引入namespace和创建支付对象

1 /**引入命名空间*/
2 using ZmjWxApi;
3 
4 /**创建支付对象*/
5 var npay = new WxPayApi("商户的id", "商户API证书序列号", "商户API证书本地路径", "微信app的id", "支付结果通知的url");

第三步 微信登录

 1 /**创建用于登录的对象*/
 2 var wx = new ZmjWxApi.WxUserApi("小程序的id", "小程序的密钥");
 3 /**网站页面跳转到扫码页面或者页面嵌入二维码*/
 4 var rurl = WxUserApi.GetLoginRedirectUrl("网站应用的id","扫码完成后跳转的链接","code","snsapi_login","自定义的附加信息");//获取到这个链接后就直接regedit到这个链接就可以了
 5 /**或者小程序中调用wx.login来获取用户的code*/
 6     wx.login({
 7       success(r){
 8         wx.request({
 9           url:'你的登录api' + r.code,
10           method: 'GET',
11           header: {
12             'content-type': 'application/json', // 默认值
13           },
14           success(lres: any) {
15             }
16           }
17         })
18       }
19     })
20 /**拿到用户的code后*/
21 var user = await wx.GetWxUserInfo(code!);//通过用户的code获取具体信息
22 var opid = user!.OpenId!;//用户在小程序或者网站中的openid
23 var nickname = user!.NickName!;//用户昵称
24 var icon = user!.Icon!;//用户的头像

第四步 调起支付

 1 /**调起二维码支付*/
 2 var url = npay!.NativePlaceOnOrder("商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算,比如:1元=100分,所以money=100标识一元
 3 /**将url变成二维码,扫码就可以支付了*/
 4 <img src="https://www.zhaimaojun.cn/QrCode/?color=black&code={上面调用方法得到的url}" />
 5  
 6 /**下面是小程序小游戏等中使用jsapi调起支付*/
 7 var turl = npay.JsApiPlaceOnOrder("支付者的openid", "商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算
 8 var res = WxPayApi.GetApiPaySign("商户自己的订单编号", "小程序的appid", turl, "商户证书的本地地址", "商户id");//这里返回的res是一个object,发送给小程序后,小程序上调起支付如:
 9     wx.requestPayment({timeStamp:r.data.timestamp,nonceStr:r.data.nonce,package:'prepay_id=' + r.data.prepayid,signType:'RSA',paySign:r.data.sign,success(e){})
10 /**小程序中调起支付需要注意:需要小程序用户先登录并且获取到openid,其次小程序要绑定到微信商户上,否则调起jsapi会失败*/

第五步 处理支付结果通知

 1 /**以下代码在应该在webapi中*/
 2 using var ms = new System.IO.MemoryStream();
 3 await Request.BodyReader.CopyToAsync(ms);
 4 ms.Seek(0, SeekOrigin.Begin);
 5 var req = Encoding.UTF8.GetString(ms.ToArray());
 6 var msg = WxPayApi.GetTransActionMessageFromContent(req, "wx支付api3的私钥", out _);
 7 //完善交易信息(可根据自己的需要)
 8 oder.PayerOpenId = msg.Payer!.Openid!;//支付者的openid
 9 oder.Attach = msg.Attach ?? "";//附加数据,也就是下单时写入的附加内容
10 oder.TradeType = msg.TradeType!;//支付类型,jsapi,二维码支付等
11 oder.TradeState = msg.TradeState!;//支付结果,一般都是success表示支付成功

 

标签:code,商户,微信,程序,standard,支付,var,轻量级,wx
From: https://www.cnblogs.com/zhaimaojun/p/18075808/zmjwxapi

相关文章

  • 超轻量级的c#版基于文件的日志记录工具,可定制输出格式,可指定日志文件
    这是我自己个人编写的日志记录,主要使用在只需要记录日志,偶尔到文件中查看一下日志记录的情况。我自己写的一些服务之类的是使用了这个的,代码很少,使用很简单。第一步搜索和安装我的Nuget包搜索和安装zmjtool这个包,我写的,如下图:第二步引入namespace和创建logger对象1/**引......
  • 轻量级无 Agent 的自动化运维平台--Spug
    介绍Spug是一个开源的自动化运维管理平台,由JavaScript和Python编写,面向中小型企业设计,无需Agent,非常轻量化。为运维人员提供了自动化部署、配置管理、任务编排、监控告警等一系列强大功能,帮助轻松管理大规模的服务器集群。Spug整合了主机管理、主机批量执行、主机在线终......
  • 学会这招,你也能实现微信批量自动加好友
    随着微信好友数量的增加,如何高效添加好友成为了一个值得探讨的话题。尤其是对于销售客服而言,每天手动添加大量的好友,费时又费力。要想解决这个问题,只需要一个能够自动添加好友的宝藏工具——微信管理系统,帮助大家解决这些重复枯燥的工作任务。首先,只需要在系统上批量导入所要......
  • 微信小程序 代驾预约评价系统 uniapp毕业设计源码lw
    代驾系统的系统项目的概述设计分析,主要内容有平台的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。本代驾服务系统主要包括系统用户管理模块、代驾线路信息管理、车辆信息管理、代......
  • 移动端的汉服交流推广活动报名系统 微信小程序
    对于小程序汉服推广的开发对硬件的要求并不高,正常的电脑配置就可以完成打开系统进行使用及管理,对于系统的打开最主要的一个方面是系统所使用的服务器方便,系统所用的服务器将直接影响往系统是否打开及系统的打开速度,要选择安全性、稳定性强的服务器。小程序Android端运行软件......
  • 基于微信小程序的公交信息在线查询系统小程序设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 微信小程序(数据请求)GEt和POST
          ......
  • 获取微信联系人列表的一种方法
    获取微信联系人列表的一种方法代码图例本文提供了一种获取微信的联系人列表的方法,步骤如下:给微信的联系人加上备注登录微信windowspc客户端,打开通讯录管理调整窗口大小,让备注这一列的内容完整显示使用FSCapture工具截取该窗口的长图(选中窗口,点击捕捉滚......
  • 极狐GitLab和企业微信的集成实战
    企业微信是国内企业使用较多的即时通信工具,极狐GitLab自16.2就和企业微信做了集成,极狐GitLab相关的变更都可以直接发送到对应的企业微信群,然后开发人员去处理。仅需两步即可完成极狐GitLab和企业微信的集成。前提由于该功能使用FeatureFlagwecom_integration控制,当......
  • #微信小程序(轮播图以及开发方法)
    1.IDE:微信开发者工具2.实验:轮播图以及正确的开发方法(1)有HTML,CSS,javascript基础即可(2)写界面一定要查看开发手册,这是微信小程序比较好的地方,由于是国内软件有中文开发手册。手册地址,直接搜---->微信小程序----->开发文档。网址:视图容器/swiper(qq.com)https://developers......