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); }); }
public async Task <WalletRecord> IncomeOfOrderRebate(UserIdentifier userIdentifier, decimal money, string remark, Order order) { WalletRecord walletRecord = BuildWalletRecord(WalletRecordType.Recharge, userIdentifier.UserId, money, remark); WalletRecordRepository.Insert(walletRecord); Wallet wallet = GetWalletOfUser(userIdentifier); wallet.Money += money; WalletRepository.Update(wallet); CurrentUnitOfWork.SaveChanges(); string openid = WechatUserManager.GetOpenid(userIdentifier); if (!string.IsNullOrEmpty(openid)) { OrderRebateTemplateMessageData data = new OrderRebateTemplateMessageData( new TemplateDataItem(remark), new TemplateDataItem(order.Number), new TemplateDataItem(order.PayMoney.ToString()), new TemplateDataItem(order.PaymentDatetime.ToString()), new TemplateDataItem(money.ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfOrderRebateAsync(order.TenantId, openid, null, data); } return(walletRecord); }
public void HandleEvent(OrderCreatedEventData eventData) { AsyncHelper.RunSync(async() => { string openid = WechatUserManager.GetOpenid(new UserIdentifier(eventData.Order.TenantId, eventData.Order.UserId)); if (!string.IsNullOrEmpty(openid)) { OrderCreatedTemplateMessageData data = new OrderCreatedTemplateMessageData( new TemplateDataItem(eventData.Order.Title), new TemplateDataItem(eventData.Order.Number), new TemplateDataItem(eventData.ProductCount.ToString()), new TemplateDataItem(eventData.Order.Money.ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfOrderCreatedAsync(eventData.Order.TenantId, openid, OrderHelper.GetOrderDetailUrl(eventData.Order.Id), data); } }); }
public WalletRecord WithdrawNotify(WalletRecord walletRecord, bool success, string failReason = null) { using (CurrentUnitOfWork.SetTenantId(walletRecord.TenantId)) { string openid = WechatUserManager.GetOpenid(walletRecord.GetUserIdentifier()); User user = walletRecord.User; if (user == null) { user = UserRepository.Get(walletRecord.UserId); } if (success) { walletRecord.FetchStatus = FetchStatus.Success; walletRecord.FailReason = ""; WalletRecordRepository.Update(walletRecord); CurrentUnitOfWork.SaveChanges(); if (!string.IsNullOrEmpty(openid)) { Task.Run(async() => { WalletWithdrawTemplateMessageData data = new WalletWithdrawTemplateMessageData( new TemplateDataItem(L("WithdrawSuccessfully")), new TemplateDataItem(user.NickName), new TemplateDataItem((-walletRecord.Money).ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfWalletWithdrawAsync(walletRecord.TenantId, openid, null, data); }); } } else { if (string.IsNullOrEmpty(failReason)) { failReason = L("UnKnowFail"); } walletRecord.FetchStatus = FetchStatus.Fail; walletRecord.FailReason = failReason; WalletRecordRepository.Update(walletRecord); CurrentUnitOfWork.SaveChanges(); if (!string.IsNullOrEmpty(openid)) { Task.Run(async() => { WalletWithdrawTemplateMessageData data = new WalletWithdrawTemplateMessageData( new TemplateDataItem(L("WithdrawFailed") + ":" + failReason), new TemplateDataItem(user.NickName), new TemplateDataItem((-walletRecord.Money).ToString()), new TemplateDataItem(L("ThankYouForYourPatronage")) ); await TemplateMessageManager.SendTemplateMessageOfWalletWithdrawAsync(walletRecord.TenantId, openid, null, data); }); } } return(walletRecord); } }
public void Setup() { var services = ServiceProviderInitializer.Init(); manager = services.GetRequiredService <TemplateMessageManager>(); }