From 7326f36860d3a7d5355bd2f7546f905010a8fb6f Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期一, 19 八月 2024 15:06:06 +0800
Subject: [PATCH] 增加企业执照文件,身份证文件验证上传,增加人脸特征上传
---
cylsg/EzWechat/WechatService.cs | 84 +++++++++++++++++++++++++++++++++++++++--
1 files changed, 79 insertions(+), 5 deletions(-)
diff --git a/cylsg/EzWechat/WechatService.cs b/cylsg/EzWechat/WechatService.cs
index cc1cf84..1d07cce 100644
--- a/cylsg/EzWechat/WechatService.cs
+++ b/cylsg/EzWechat/WechatService.cs
@@ -1,26 +1,35 @@
-锘縰sing Furion;
+锘縰sing EzCoreNet.Redis;
+using Furion;
+using Furion.DependencyInjection;
+using Furion.DynamicApiController;
+using Furion.FriendlyException;
+using Microsoft.Extensions.Options;
using SKIT.FlurlHttpClient.Wechat.Api;
using SKIT.FlurlHttpClient.Wechat.Api.Models;
using System;
using System.Collections.Generic;
using System.Linq;
+using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
namespace EzWechat
{
- public class WechatService:IWechatService
+ public class WechatService:IWechatService ,IScoped
{
+ private readonly WechatApiClient _client;
+ private readonly IEzCoreNetRedisService _redisService;
- public WechatService() {
-
+ public WechatService(IEzCoreNetRedisService ezCoreNetRedis) {
+
/* 浠ュ叕浼楀彿鑾峰彇鐢ㄦ埛淇℃伅鎺ュ彛涓轰緥 */
var request = new WechatApiClientOptions()
{
AppId = App.Configuration["WechatAPP:AppId"],
AppSecret = App.Configuration["WechatAPP:AppSecret"],
-
+ Timeout=3000,
+
//ImmeDeliveryAppKey = "鍗虫椂閰嶉�佺浉鍏虫湇鍔� AppKey锛屼笉鐢ㄥ垯涓嶅~",
//ImmeDeliveryAppSecret = "鍗虫椂閰嶉�佺浉鍏虫湇鍔� AppSecret锛屼笉鐢ㄥ垯涓嶅~",
//VirtualPaymentAppKey = "铏氭嫙鏀粯鐩稿叧鏈嶅姟 AppKey锛屼笉鐢ㄥ垯涓嶅~",
@@ -28,9 +37,74 @@
//MidasAppKey = "绫冲ぇ甯� 1.0 鐩稿叧鏈嶅姟 AppKey锛屼笉鐢ㄥ垯涓嶅~",
//MidasOfferIdV2 = "绫冲ぇ甯� 2.0 鐩稿叧鏈嶅姟 OfferId锛屼笉鐢ㄥ垯涓嶅~",
//MidasAppKeyV2 = "绫冲ぇ甯� 2.0 鐩稿叧鏈嶅姟 AppKey锛屼笉鐢ㄥ垯涓嶅~"
+ };
+ _client = WechatApiClientBuilder.Create(request).Build();
+
+ _redisService = ezCoreNetRedis;
+
+
+ }
+
+ public async Task<string> GetOpenID(string jscode)
+ {
+
+ var reques = new SnsJsCode2SessionRequest()
+ {
+
+
+
+
+ JsCode = jscode
+ };
+ var a= await _client.ExecuteSnsJsCode2SessionAsync(reques);
+ if(a.IsSuccessful())
+ {
+ return a.OpenId;
+ }
+ else
+ {
+ throw Oops.Oh($"{a.ErrorCode}+++{a.ErrorMessage}");
+ }
+ }
+ public async Task<string> GetPhone( string bindgetphonenumber)
+ {
+
+
+ var requs = new WxaBusinessGetUserPhoneNumberRequest()
+ {
+ AccessToken = await GetAccessToken(),
+ Code= bindgetphonenumber
+
};
+ var a= await _client.ExecuteWxaBusinessGetUserPhoneNumberAsync(requs);
+ if (a.IsSuccessful())
+ return a.PhoneInfo.PurePhoneNumber;
+ else
+ {
+ throw Oops.Oh($"{a.ErrorCode}+++{a.ErrorMessage}");
+ }
}
+ /// <summary>
+ /// 鑾峰彇AccToken
+ /// </summary>
+ /// <returns></returns>
+ private async Task<string> GetAccessToken()
+ {
+ string key = _redisService.Get<string>("WxAccessToken");
+ if(string.IsNullOrEmpty(key))
+ {
+ var a = await _client.ExecuteCgibinTokenAsync(new CgibinTokenRequest { });
+ if(!a.IsSuccessful())
+ {
+ throw Oops.Oh($"{a.ErrorCode}+++{a.ErrorMessage}");
+ }
+ key=a.AccessToken;
+ _redisService.Add<string>("WxAccessToken", a.AccessToken, 7000);
+ }
+ return key;
+ }
+
}
}
--
Gitblit v1.9.1