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

打印 上一主题 下一主题

主题 1040|帖子 1040|积分 3120

我个人编写的库,在我个人网站,小程序等许多地方都在使用中,各人可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验付出和登录效果。
本库主要实现了native pay(二维码付出)jsapi pay(小程序直接调起付出),需要留意的是这是基于api3的,非api2。
以下演示如何使用:
第一步 搜索安装ZmjWxApi

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

第二步 引入namespace和创建付出对象
  1. 1 /**引入命名空间*/
  2. 2 using ZmjWxApi;
  3. 3
  4. 4 /**创建支付对象*/
  5. 5 var npay = new WxPayApi("商户的id", "商户API证书序列号", "商户API证书本地路径", "微信app的id", "支付结果通知的url");
复制代码
第三步 微信登录
  1. 1 /**创建用于登录的对象*/
  2. 2 var wx = new ZmjWxApi.WxUserApi("小程序的id", "小程序的密钥");
  3. 3 /**网站页面跳转到扫码页面或者页面嵌入二维码*/
  4. 4 var rurl = WxUserApi.GetLoginRedirectUrl("网站应用的id","扫码完成后跳转的链接","code","snsapi_login","自定义的附加信息");//获取到这个链接后就直接regedit到这个链接就可以了
  5. 5 /**或者小程序中调用wx.login来获取用户的code*/
  6. 6     wx.login({
  7. 7       success(r){
  8. 8         wx.request({
  9. 9           url:'你的登录api' + r.code,
  10. 10           method: 'GET',
  11. 11           header: {
  12. 12             'content-type': 'application/json', // 默认值
  13. 13           },
  14. 14           success(lres: any) {
  15. 15             }
  16. 16           }
  17. 17         })
  18. 18       }
  19. 19     })
  20. 20 /**拿到用户的code后*/
  21. 21 var user = await wx.GetWxUserInfo(code!);//通过用户的code获取具体信息
  22. 22 var opid = user!.OpenId!;//用户在小程序或者网站中的openid
  23. 23 var nickname = user!.NickName!;//用户昵称
  24. 24 var icon = user!.Icon!;//用户的头像
复制代码
第四步 调起付出
  1. 1 /**调起二维码支付*/
  2. 2 var url = npay!.NativePlaceOnOrder("商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算,比如:1元=100分,所以money=100标识一元
  3. 3 /**将url变成二维码,扫码就可以支付了*/
  4. 4 <img src="https://www.zhaimaojun.cn/QrCode/?color=black&code={上面调用方法得到的url}" />
  5. 5  
  6. 6 /**下面是小程序小游戏等中使用jsapi调起支付*/
  7. 7 var turl = npay.JsApiPlaceOnOrder("支付者的openid", "商户自己的订单编号", "商品名称和描述", "附加信息", money);//money为订单总价格,按照分来算
  8. 8 var res = WxPayApi.GetApiPaySign("商户自己的订单编号", "小程序的appid", turl, "商户证书的本地地址", "商户id");//这里返回的res是一个object,发送给小程序后,小程序上调起支付如:
  9. 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. 10 /**小程序中调起支付需要注意:需要小程序用户先登录并且获取到openid,其次小程序要绑定到微信商户上,否则调起jsapi会失败*/
复制代码
第五步 处置惩罚付出效果通知
  1. 1 /**以下代码在应该在webapi中*/
  2. 2 using var ms = new System.IO.MemoryStream();
  3. 3 await Request.BodyReader.CopyToAsync(ms);
  4. 4 ms.Seek(0, SeekOrigin.Begin);
  5. 5 var req = Encoding.UTF8.GetString(ms.ToArray());
  6. 6 var msg = WxPayApi.GetTransActionMessageFromContent(req, "wx支付api3的私钥", out _);
  7. 7 //完善交易信息(可根据自己的需要)
  8. 8 oder.PayerOpenId = msg.Payer!.Openid!;//支付者的openid
  9. 9 oder.Attach = msg.Attach ?? "";//附加数据,也就是下单时写入的附加内容
  10. 10 oder.TradeType = msg.TradeType!;//支付类型,jsapi,二维码支付等
  11. 11 oder.TradeState = msg.TradeState!;//支付结果,一般都是success表示支付成功
复制代码
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表