You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
3.6 KiB

2 years ago
//DPBMARK_FILE MiniProgram
using Senparc.CO2NET.Cache;
using Senparc.Weixin.Sample.CommonService.TemplateMessage.WxOpen;
using Senparc.Weixin.TenPay.V3;//DPBMARK TenPay DPBMARK_END
using Senparc.Weixin.WxOpen.Containers;
using System;
using System.Threading.Tasks;
namespace Senparc.Weixin.Sample.CommonService
{
public class TemplateMessageService
{
[Obsolete("2020年01月10日起新发布的小程序将不能使用模板消息请迁移至“订阅消息”功能。")]
public async Task<SessionBag> RunTemplateTestAsync(string wxOpenAppId, string sessionId, string formId)
{
var sessionBag = await SessionContainer.GetSessionAsync(sessionId);
//var openId = sessionBag != null ? sessionBag.OpenId : "用户未正确登陆";
//string title = null;
//decimal price = 1;//单位:分,实际使用过程中,通过数据库获取订单并读取
//string productName = null;
//string orderNumber = null;
//if (formId.StartsWith("prepay_id="))
//{
// formId = formId.Replace("prepay_id=", "");
// title = "这是来自小程序支付的模板消息(仅测试接收,数据不一定真实)";
// //DPBMARK TenPay
// var cacheStrategy = CacheStrategyFactory.GetObjectCacheStrategyInstance();
// var unifiedorderRequestData = await cacheStrategy.GetAsync<TenPayV3UnifiedorderRequestData>($"WxOpenUnifiedorderRequestData-{openId}");//获取订单请求信息缓存
// var unifedorderResult = await cacheStrategy.GetAsync<UnifiedorderResult>($"WxOpenUnifiedorderResultData-{openId}");//获取订单信息缓存
// if (unifedorderResult != null && formId == unifedorderResult.prepay_id)
// {
// price = unifiedorderRequestData.TotalFee;
// productName = unifiedorderRequestData.Body + "/缓存获取 prepay_id 成功";
// orderNumber = unifiedorderRequestData.OutTradeNo;
// }
// else//DPBMARK_END
// {
// productName = "缓存获取 prepay_id 失败";
// orderNumber = "1234567890";
// }
// productName += " | 注意这条消息是从小程序发起的仅作为UI上支付成功的演示不能确定支付真实成功 | prepay_id";
// productName += unifedorderResult.prepay_id;//DPBMARK TenPay DPBMARK_END
//}
//else
//{
// title = "在线购买(仅测试小程序接收模板消息,数据不一定真实)";
// productName = "商品名称-模板消息测试";
// orderNumber = "9876543210";
//}
//var data = new WxOpenTemplateMessage_PaySuccessNotice(title, SystemTime.Now, productName, orderNumber, price,
// "400-031-8816", "https://sdk.senparc.weixin.com");
//await Senparc.Weixin.WxOpen.AdvancedAPIs
// .Template.TemplateApi
// .SendTemplateMessageAsync(
// wxOpenAppId, openId, data.TemplateId, data, formId, "pages/index/index", "图书", "#fff00");
return sessionBag;
}
[Obsolete("建议使用 RunTemplateTestAsync 方法")]
public SessionBag RunTemplateTest(string wxOpenAppId, string sessionId, string formId)
{
var sessionBag = RunTemplateTestAsync(wxOpenAppId, sessionId, formId).ConfigureAwait(false).GetAwaiter().GetResult();
return sessionBag;
}
}
}