增加消息订阅功能

develop
old易 2024-03-29 14:13:01 +08:00
parent 1784f8a6d0
commit bfdbbf1eaf
3 changed files with 68 additions and 1 deletions

View File

@ -9,12 +9,12 @@ using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using MySqlX.XDevAPI.Common;
using New_College.AuthHelper.OverWrite;
using New_College.Common;
using New_College.IServices;
using New_College.Model;
using New_College.Model.Models;
using New_College.Model.Request;
using New_College.Model.ViewModels;
using Org.BouncyCastle.Asn1.Ocsp;
namespace New_College.Api.Controllers.Front
{
@ -273,6 +273,7 @@ namespace New_College.Api.Controllers.Front
var count = (await _fansDistributionServices.Query(e => e.SaleId == saleId)).Count();//判断邀请人数是否满足三个人
if (count >= 3)
{
await _services.UpdateIsVip(saleId);
}
return true;
@ -281,6 +282,7 @@ namespace New_College.Api.Controllers.Front
return false;
}
/// <summary>
/// 同步合并数据
/// </summary>

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Net.Http;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
using NPOI.SS.Formula.Functions;
@ -76,6 +77,42 @@ namespace New_College.Common
}
}
/// <summary>
///消息订阅
/// </summary>
/// <param name="accessToken"></param>
/// <param name="openID"></param>
/// <param name="templateID"></param>
/// <param name="data"></param>
/// <returns></returns>
public static T SendSubscribeMessageAsync(string accessToken, string openID, Dictionary<string, object> data)
{
// 构造请求数据
var sendMessageRequest = new
{
access_token = accessToken,
page = "pages/index/index",
data = data,
template_id = "ZqRgty6dYqHXEGzUYAGSWcwOzNLNo1kWxMK-PO1dEBc",
touser = openID,
lang = "zh_CN",
miniprogram_state = "formal"
};
// 发送请求
var requestUrl = $"https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={accessToken}";
var jsonContent = JsonConvert.SerializeObject(sendMessageRequest);
using (var httpClient = new HttpClient())
{
var httpContent = new StringContent(jsonContent, Encoding.UTF8, "application/json");
//var response = httpClient.PostAsync(requestUrl, httpContent);
var responseStr = httpClient.PostAsync(requestUrl, httpContent).Result.Content.ReadAsStringAsync().Result;
var obj = JsonConvert.DeserializeObject<T>(responseStr);
return obj;
}
}
public static T WxaBusinessGetUserPhoneNumber<T>(string access_token, string code) where T : new()
{
var authinfo = new T();

View File

@ -40,12 +40,40 @@ namespace New_College.Services
}
/// <summary>
/// vip任务订阅
/// </summary>
/// <param name="openid"></param>
private void MinProVipSubscribe(string openid)
{
try
{
var data = new Dictionary<string, object>();
data.Add("thing6.DATA", "邀请注册");
data.Add("thing11.DATA", "");
var access_token = WeixinHelper.GetAccessToken<Access_Token>(WeixinConfig.Appid, WeixinConfig.Secret);
var subscribe = WeixinHelper.SendSubscribeMessageAsync(access_token.access_token, openid, data);
}
catch (Exception ex)
{
}
}
/// <summary>
/// 根据要求更新vip状态
/// </summary>
/// <param name="saleId"></param>
public async Task<bool> UpdateIsVip(int saleId)
{
var single = await this._dal.QueryById(saleId);
if (single == null)
{
MinProVipSubscribe(single.OpenId);
}
return await this._dal.Update(string.Format("update V_CustomerInfo set IsVIP=1 where Id={0}", saleId));
}
/// <summary>