public void HandleEvent(OrderShipedEventData eventData)
        {
            AsyncHelper.RunSync(async() =>
            {
                string openid = WechatUserManager.GetOpenid(new UserIdentifier(eventData.Order.TenantId, eventData.Order.UserId));

                if (String.IsNullOrEmpty(openid))
                {
                    return;
                }
                OrderShipedTemplateMessageData data = new OrderShipedTemplateMessageData()
                {
                    first    = new TemplateDataItem(eventData.Order.Title),
                    keyword1 = new TemplateDataItem(eventData.Order.Number),
                    keyword4 = new TemplateDataItem(eventData.Order.CreationTime.ToString()),
                    remark   = new TemplateDataItem(L("ThankYouForYourPatronage"))
                };

                if (eventData.ExpressInfo != null)
                {
                    ExpressCompany expressCompany = ExpressCompanyRepository.Get(eventData.ExpressInfo.ExpressCompanyId);
                    data.keyword2 = new TemplateDataItem(expressCompany.Name);
                    data.keyword3 = new TemplateDataItem(eventData.ExpressInfo.TrackingNumber);
                }
                else
                {
                    data.keyword2 = new TemplateDataItem(L("Null"));
                    data.keyword3 = new TemplateDataItem(L("Null"));
                }
                await TemplateMessageManager.SendTemplateMessageOfOrderShipedAsync(eventData.Order.TenantId, openid, OrderHelper.GetOrderDetailUrl(eventData.Order.Id), data);
            });
        }
Beispiel #2
0
        public async Task <SendTemplateMessageResult> SendTemplateMessageOfOrderShipedAsync(int tenantId, string openId, string url, OrderShipedTemplateMessageData data)
        {
            string accessToken = await WechatCommonManager.GetAccessTokenAsync(tenantId);

            string templateId = await SettingManager.GetSettingValueForTenantAsync(WechatSettings.TemplateMessage.OrderShiped, tenantId);

            SendTemplateMessageResult sendResult = await SendTemplateMessageAsync(accessToken, openId, templateId, url, data);

            return(sendResult);
        }