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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

//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;
}
}
}