500 lines
21 KiB
C#
500 lines
21 KiB
C#
|
|
using DotNetCore.CAP;
|
|||
|
|
using Furion;
|
|||
|
|
using Furion.DistributedIDGenerator;
|
|||
|
|
using Microsoft.AspNetCore.Mvc;
|
|||
|
|
using Nirvana.Common;
|
|||
|
|
using Senparc.Weixin.MP;
|
|||
|
|
using Senparc.Weixin.MP.AdvancedAPIs;
|
|||
|
|
using Senparc.Weixin.MP.AdvancedAPIs.OAuth;
|
|||
|
|
using Senparc.Weixin.MP.Helpers;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Web;
|
|||
|
|
using YBDevice.Body.BodyFatHelper;
|
|||
|
|
using YBDevice.Entity;
|
|||
|
|
|
|||
|
|
namespace YBDevice.NApi.Controllers
|
|||
|
|
{
|
|||
|
|
/// <summary>
|
|||
|
|
/// 扫码流程处理
|
|||
|
|
/// </summary>
|
|||
|
|
public class QrController : WebBaseController
|
|||
|
|
{
|
|||
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
|||
|
|
private readonly IOrderService _orderService;
|
|||
|
|
private readonly IDeviceService _deviceService;
|
|||
|
|
private readonly INoticeService _noticeService;
|
|||
|
|
private readonly IMPService _mPService;
|
|||
|
|
private readonly ICapPublisher _capBus;
|
|||
|
|
|
|||
|
|
public QrController(IHttpContextAccessor httpContextAccessor, IOrderService orderService,
|
|||
|
|
IDeviceService deviceService,
|
|||
|
|
INoticeService noticeService, IMPService mPService, ICapPublisher capPublisher)
|
|||
|
|
{
|
|||
|
|
_httpContextAccessor = httpContextAccessor;
|
|||
|
|
_orderService = orderService;
|
|||
|
|
_deviceService = deviceService;
|
|||
|
|
_noticeService = noticeService;
|
|||
|
|
_mPService = mPService;
|
|||
|
|
_capBus = capPublisher;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#region 固定贴纸处理
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 扫码主入口,针对固定的贴纸二维码,即可跳转到小程序又可关注公众号也可跳转链接
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sn">产品序列号</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public async Task<IActionResult> r(string sn)
|
|||
|
|
{
|
|||
|
|
//sn过滤空格
|
|||
|
|
sn = sn.ToStr();
|
|||
|
|
|
|||
|
|
if (sn == "L228000103")
|
|||
|
|
{
|
|||
|
|
return Redirect($"https://ijt.pcxbc.com/qr/r/MA==?t=7");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//是否跳转到新平台
|
|||
|
|
if (await _orderService.IsNewPlatformAsync(sn))
|
|||
|
|
{
|
|||
|
|
return Redirect($"{App.Configuration["CustomSetting:NewPltUrl"]}/qr/r?sn={sn}");
|
|||
|
|
}
|
|||
|
|
//对参数进行base64编码
|
|||
|
|
var data = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{sn}"));
|
|||
|
|
var url = $"{Configs.GetString("APIURL")}/Qr/e?data={data}";
|
|||
|
|
//对url进行base64编码
|
|||
|
|
url = Convert.ToBase64String(Encoding.UTF8.GetBytes(url));
|
|||
|
|
//跳转授权页面
|
|||
|
|
var state = "xbpage";//用于识别请求可靠性
|
|||
|
|
var redirecturl = $"{Configs.GetString("APIURL")}/Auth/page?r={url}";
|
|||
|
|
var rurl = OAuthApi.GetAuthorizeUrl(appId, redirecturl, state, OAuthScope.snsapi_userinfo);
|
|||
|
|
return Redirect(rurl);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 固定贴纸处理流程
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public async Task<IActionResult> eAsync(string data, string info)
|
|||
|
|
{
|
|||
|
|
var ua = _httpContextAccessor.HttpContext.Request.Headers["User-Agent"].ToString();
|
|||
|
|
//对data进行base64解密
|
|||
|
|
var facecode = Encoding.UTF8.GetString(Convert.FromBase64String(data));
|
|||
|
|
//对info进行base64解密,然后urldecode解码
|
|||
|
|
info = HttpUtility.UrlDecode(Encoding.UTF8.GetString(Convert.FromBase64String(info)));
|
|||
|
|
UserBaseInfoS2SDto userInfo = info.ToObject<UserBaseInfoS2SDto>();
|
|||
|
|
Guid eid = Guid.Empty;//错误代码
|
|||
|
|
|
|||
|
|
#region 检查设备
|
|||
|
|
|
|||
|
|
var equ = await _deviceService.GetDeviceAsync(facecode);
|
|||
|
|
if (equ == null)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{facecode}",
|
|||
|
|
FromInfo = "固定贴纸,设备未找到",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
//设备未找到
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.devnotfound, eid = eid });
|
|||
|
|
}
|
|||
|
|
//判断设备是否可用
|
|||
|
|
if (equ.Status == (int)DeviceStatus.Stop)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{facecode}",
|
|||
|
|
FromInfo = "固定贴纸,设备已停止运行",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.deverror, eid = eid });
|
|||
|
|
}
|
|||
|
|
//判断设备是否激活
|
|||
|
|
if (!equ.ActiveTime.HasValue
|
|||
|
|
|| equ.Status == DeviceStatus.UnActive)
|
|||
|
|
{
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = IDGen.NextID(),
|
|||
|
|
Info = $"参数:{facecode}",
|
|||
|
|
FromInfo = "固定贴纸,设备未激活",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
//跳转到打开设备管理小程序的页面
|
|||
|
|
//获取设备绑定的设备管理小程序
|
|||
|
|
var order = await _orderService.GetDevMagOrderAsync(equ, userInfo);
|
|||
|
|
return RedirectToAction("bmini", new { sn = order.appid, page = order.content, n = order.NickName, h = order.HeadImg });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion 检查设备
|
|||
|
|
|
|||
|
|
//根据设备绑定的订单,跳转到不同的页面
|
|||
|
|
var orderinfo = await _orderService.GetOrderByStickerAsync(equ, userInfo, 2);
|
|||
|
|
if (orderinfo == null)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{facecode}",
|
|||
|
|
FromInfo = "固定贴纸,未找到可用的订单",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.NoOrder, eid = eid });
|
|||
|
|
}
|
|||
|
|
//订单信息有误
|
|||
|
|
if (orderinfo.code > 0)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{facecode},返回:{orderinfo.code}",
|
|||
|
|
FromInfo = "固定贴纸,获取订单失败",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
return RedirectToAction("error", new { msg = orderinfo.code, eid = eid });
|
|||
|
|
}
|
|||
|
|
//保存记录
|
|||
|
|
await _orderService.InsertResultAsync(equ, userInfo, orderinfo);
|
|||
|
|
var jsondata = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{orderinfo.ToJson()}"));
|
|||
|
|
return RedirectToAction("f", new { info = jsondata });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 二维码展示页面
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="info"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
public async Task<IActionResult> fAsync(string info = "")
|
|||
|
|
{
|
|||
|
|
var str = Encoding.UTF8.GetString(Convert.FromBase64String(info));
|
|||
|
|
var orderinfo = str.ToObject<OrderInfo>();
|
|||
|
|
//针对小程序,跳转路径携带fid参数表示用户粉丝唯一标识
|
|||
|
|
if (orderinfo.officetype == (int)OfficeType.MINI)
|
|||
|
|
{
|
|||
|
|
orderinfo.content = orderinfo.content.Contains("?") ? $"{orderinfo.content}&fid={orderinfo.WxFansId}" : $"{orderinfo.content}?fid={orderinfo.WxFansId}";
|
|||
|
|
}
|
|||
|
|
ViewData["orderinfo"] = orderinfo;
|
|||
|
|
//根据设备类型跳转到不同的页面
|
|||
|
|
string url = Request.AbsoluteUri();
|
|||
|
|
JsSdkUiPackage jssdkpackage = await _mPService.GetJsSdkUiPackageAsync(url);
|
|||
|
|
return View(jssdkpackage);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion 固定贴纸处理
|
|||
|
|
|
|||
|
|
#region 八电极绑定,暂时不用,20210904
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 绑定入口
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sn">设备机器码</param>
|
|||
|
|
/// <param name="t">设备类型</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public IActionResult b(string sn, string t = "2")
|
|||
|
|
{
|
|||
|
|
//对参数进行base64编码
|
|||
|
|
var data = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{sn},{t}"));
|
|||
|
|
var url = $"{Configs.GetString("APIURL")}/Qr/body?data={data}";
|
|||
|
|
//对url进行base64编码
|
|||
|
|
url = Convert.ToBase64String(Encoding.UTF8.GetBytes(url));
|
|||
|
|
//跳转授权页面
|
|||
|
|
var state = "xbpage";//用于识别请求可靠性
|
|||
|
|
var redirecturl = $"{Configs.GetString("APIURL")}/Auth/page?r={url}";
|
|||
|
|
var rurl = OAuthApi.GetAuthorizeUrl(appId, redirecturl, state, OAuthScope.snsapi_userinfo);
|
|||
|
|
return Redirect(rurl);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 设备绑定页面,只针对wifi绑定版
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="data"></param>
|
|||
|
|
/// <param name="info"></param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> BodyAsync(string data, string info)
|
|||
|
|
{
|
|||
|
|
var ua = _httpContextAccessor.HttpContext.Request.Headers["User-Agent"].ToString();
|
|||
|
|
//对data进行base64解密
|
|||
|
|
var resultdata = Encoding.UTF8.GetString(Convert.FromBase64String(data));
|
|||
|
|
var arr = resultdata.Split(',');
|
|||
|
|
//数据格式不正确
|
|||
|
|
if (arr.Length != 2)
|
|||
|
|
{
|
|||
|
|
return View();
|
|||
|
|
}
|
|||
|
|
//内容为sn,t
|
|||
|
|
//二维码生成规格则:http://ybapi.ybhdmob.com/qr/b?sn=设备码&t=2
|
|||
|
|
//示例:http://ybapi.ybhdmob.com/qr/b?sn=b00001&t=2
|
|||
|
|
var ecode = arr[0];//格式:设备机器码
|
|||
|
|
var type = arr[1];//默认为2
|
|||
|
|
//对info进行base64解密,然后urldecode解码
|
|||
|
|
info = HttpUtility.UrlDecode(Encoding.UTF8.GetString(Convert.FromBase64String(info)));
|
|||
|
|
OAuthUserInfo userInfo = info.ToObject<OAuthUserInfo>();
|
|||
|
|
Guid eid = Guid.Empty;//错误代码
|
|||
|
|
|
|||
|
|
#region 检查设备
|
|||
|
|
|
|||
|
|
var equ = await _deviceService.GetDeviceByEcodeAsync(ecode);
|
|||
|
|
if (equ == null)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{resultdata}",
|
|||
|
|
FromInfo = "八电极绑定页面,设备未找到",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
//设备未找到
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.devnotfound, eid = eid });
|
|||
|
|
}
|
|||
|
|
//判断设备是否激活
|
|||
|
|
if (!equ.ActiveTime.HasValue
|
|||
|
|
//|| equ.EndTime < DateTime.Now
|
|||
|
|
|| equ.Status == DeviceStatus.UnActive)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{resultdata}",
|
|||
|
|
FromInfo = "八电极绑定页面,设备未激活",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.devnotactive, eid = eid });
|
|||
|
|
//跳转到设备激活页面
|
|||
|
|
//return Redirect($"/Device/Active?ecode={ecode}&type={type}");
|
|||
|
|
}
|
|||
|
|
//判断设备是否可用
|
|||
|
|
if (equ.Status == (int)DeviceStatus.Stop)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{resultdata}",
|
|||
|
|
FromInfo = "八电极绑定页面,设备已停止运行",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.deverror, eid = eid });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion 检查设备
|
|||
|
|
|
|||
|
|
#region 生成要展示的公众号
|
|||
|
|
|
|||
|
|
var order = await _orderService.GetAsync(equ, userInfo, 1, true);
|
|||
|
|
if (order == null || order.code != 0)
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{resultdata}",
|
|||
|
|
FromInfo = "八电极绑定页面,获取订单失败",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
//跳转到未找到可用公众号的错误页面
|
|||
|
|
return RedirectToAction("error", new { msg = order != null ? order.code : (int)ErrorInfoDesc.NoOrder, eid = eid });
|
|||
|
|
}
|
|||
|
|
//如果是关注公众号
|
|||
|
|
if (order.type == OrderType.Office)
|
|||
|
|
{
|
|||
|
|
//记录结果,返回二维码信息
|
|||
|
|
ViewData["ercode"] = order.content;
|
|||
|
|
ViewData["vrcode"] = order.vrcode;
|
|||
|
|
ViewData["officetype"] = order.officetype;
|
|||
|
|
}
|
|||
|
|
//如果是链接地址
|
|||
|
|
else if (order.type == OrderType.URL)
|
|||
|
|
{
|
|||
|
|
//直接跳转页面,要进行计费,待完善,20210317
|
|||
|
|
return Redirect(order.content);
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
eid = IDGen.NextID();
|
|||
|
|
await _capBus.PublishAsync("system.service.insertnoticelogger", new YB_NoticeLogger
|
|||
|
|
{
|
|||
|
|
UserInfo = info,
|
|||
|
|
Id = eid,
|
|||
|
|
Info = $"参数:{resultdata}",
|
|||
|
|
FromInfo = "八电极绑定页面,此订单类型不支持",
|
|||
|
|
UA = ua
|
|||
|
|
});
|
|||
|
|
//跳转到此功能只能开发中
|
|||
|
|
return RedirectToAction("error", new { msg = (int)ErrorInfoDesc.develop, eid = eid });
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion 生成要展示的公众号
|
|||
|
|
|
|||
|
|
return View();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 八电极数据结果展示
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="d">
|
|||
|
|
/// sn|weight|height|lefthandimp|righthandimp|leftfootimp|rightfootimp|bodyimp
|
|||
|
|
/// </param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> brAsync(string d)
|
|||
|
|
{
|
|||
|
|
var arr = d.Split('|');
|
|||
|
|
int code = 0;
|
|||
|
|
if (arr.Length != 9)
|
|||
|
|
{
|
|||
|
|
code = 1;
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
string sn = arr[0];
|
|||
|
|
decimal weight = arr[1].ToDecimal();
|
|||
|
|
decimal height = arr[2].ToDecimal();
|
|||
|
|
int age = 20;
|
|||
|
|
GenderType sex = GenderType.Male;
|
|||
|
|
decimal lefthandimp = arr[3].ToDecimal();
|
|||
|
|
decimal righthandimp = arr[4].ToDecimal();
|
|||
|
|
decimal leftfootimp = arr[5].ToDecimal();
|
|||
|
|
decimal rightfootimp = arr[6].ToDecimal();
|
|||
|
|
decimal bodyimp = arr[7].ToDecimal();
|
|||
|
|
var bodyService = App.GetService<IBodyFatHelperService>();
|
|||
|
|
var bodyresult = await bodyService.CalcBody120FatAsync(weight, height, age, sex, lefthandimp, righthandimp, leftfootimp, rightfootimp, bodyimp);
|
|||
|
|
ViewData["sn"] = sn;
|
|||
|
|
ViewData["weight"] = weight;
|
|||
|
|
ViewData["height"] = height;
|
|||
|
|
ViewData["lefthandimp"] = lefthandimp;
|
|||
|
|
ViewData["righthandimp"] = righthandimp;
|
|||
|
|
ViewData["leftfootimp"] = leftfootimp;
|
|||
|
|
ViewData["rightfootimp"] = rightfootimp;
|
|||
|
|
ViewData["bodyimp"] = bodyimp;
|
|||
|
|
ViewData["age"] = age;
|
|||
|
|
ViewData["sex"] = sex == GenderType.Male ? "男" : "女";
|
|||
|
|
ViewData["bodyresult"] = bodyresult;
|
|||
|
|
}
|
|||
|
|
return View(code);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#endregion 八电极绑定,暂时不用,20210904
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 信息错误页面
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="msg">错误信息代码</param>
|
|||
|
|
/// <param name="eid">错误代码ID</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public IActionResult Error(int msg, string eid)
|
|||
|
|
{
|
|||
|
|
var errmsg = EnumHelper.GetEnumDictionary<ErrorInfoDesc>().FirstOrDefault(x => x.Key == msg).Value;
|
|||
|
|
ViewData["code"] = $"YBERROR-{eid}";
|
|||
|
|
ViewData["message"] = $"{errmsg}";
|
|||
|
|
return View();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 跳转到商户端小程序页面
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="sn"></param>
|
|||
|
|
/// <param name="page">小程序路径</param>
|
|||
|
|
/// <param name="h">小程序昵称</param>
|
|||
|
|
/// <param name="n">小程序头像</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> BMiniAsync(string sn, string page = "pages/index/index", string n = "", string h = "")
|
|||
|
|
{
|
|||
|
|
string url = Request.AbsoluteUri();
|
|||
|
|
var jssdkpackage = await _mPService.GetJsSdkUiPackageAsync(url);
|
|||
|
|
ViewData["username"] = sn;
|
|||
|
|
ViewData["page"] = page;
|
|||
|
|
ViewData["nickname"] = n;
|
|||
|
|
ViewData["headimg"] = h;
|
|||
|
|
return View(jssdkpackage);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 跳转到出入境小程序
|
|||
|
|
/// </summary>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> crj()
|
|||
|
|
{
|
|||
|
|
string url = Request.AbsoluteUri();
|
|||
|
|
var jssdkpackage = await _mPService.GetJsSdkUiPackageAsync(url);
|
|||
|
|
//var jssdkpackage = new JsSdkUiPackage("", "", "", "");
|
|||
|
|
return View(jssdkpackage);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 测量二维码关注公众号之后的图文跳转页面
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="openid">用户openid,base64加密</param>
|
|||
|
|
/// <param name="aid">用户appdi,base64加密</param>
|
|||
|
|
/// <param name="fansid">用户wxfansid</param>
|
|||
|
|
/// <param name="type">
|
|||
|
|
/// 1-认证的服务号关注事件,2-认证的服务号扫码事件,3-非认证关注事件,4-回复关键字,5-第一次打开落地页,6-非认证扫码事件
|
|||
|
|
/// </param>
|
|||
|
|
/// <param name="rid">记录ID</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> sAsync(string openid, string aid, string fansid, int type, Guid? rid)
|
|||
|
|
{
|
|||
|
|
string url = Request.AbsoluteUri();
|
|||
|
|
string appid = Encoding.UTF8.GetString(Convert.FromBase64String(aid));
|
|||
|
|
string oid = Encoding.UTF8.GetString(Convert.FromBase64String(openid));
|
|||
|
|
//取绑定的小程序
|
|||
|
|
var orderinfo = await _orderService.HandlerResultSubscribeAsync(appid, oid, type, fansid, rid);
|
|||
|
|
var jssdkpackage = await _mPService.GetJsSdkUiPackageAsync(url);
|
|||
|
|
ViewData["username"] = orderinfo.appid;
|
|||
|
|
ViewData["page"] = orderinfo.content;
|
|||
|
|
ViewData["nickname"] = orderinfo.NickName;
|
|||
|
|
ViewData["headimg"] = orderinfo.HeadImg;
|
|||
|
|
return View(jssdkpackage);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/// <summary>
|
|||
|
|
/// 固定贴纸关注公众号之后的图文跳转页面
|
|||
|
|
/// </summary>
|
|||
|
|
/// <param name="openid">用户openid,base64加密</param>
|
|||
|
|
/// <param name="aid">用户appdi,base64加密</param>
|
|||
|
|
/// <param name="fansid">用户wxfansid</param>
|
|||
|
|
/// <param name="type">
|
|||
|
|
/// 1-认证的服务号关注事件,2-认证的服务号扫码事件,3-非认证关注事件,4-回复关键字,5-第一次打开落地页,6-非认证扫码事件
|
|||
|
|
/// </param>
|
|||
|
|
/// <param name="rid">测量记录ID</param>
|
|||
|
|
/// <returns></returns>
|
|||
|
|
[WeChatFilter]
|
|||
|
|
public async Task<IActionResult> tAsync(string openid, string aid, string fansid, int type, Guid? rid)
|
|||
|
|
{
|
|||
|
|
string url = Request.AbsoluteUri();
|
|||
|
|
string appid = Encoding.UTF8.GetString(Convert.FromBase64String(aid));
|
|||
|
|
string oid = Encoding.UTF8.GetString(Convert.FromBase64String(openid));
|
|||
|
|
var orderinfo = await _orderService.HandlerStickySubscribeAsync(appid, oid, type, fansid, rid);
|
|||
|
|
var jssdkpackage = await _mPService.GetJsSdkUiPackageAsync(url);
|
|||
|
|
ViewData["username"] = orderinfo.appid;
|
|||
|
|
ViewData["page"] = orderinfo.content;
|
|||
|
|
ViewData["nickname"] = orderinfo.NickName;
|
|||
|
|
ViewData["headimg"] = orderinfo.HeadImg;
|
|||
|
|
return View(jssdkpackage);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|