예제 #1
0
        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);
        }
예제 #2
0
        public async Task <SendTemplateMessageResult> SendTemplateMessageOfOrderRebateAsync(int tenantId, string openId, string url, OrderRebateTemplateMessageData data)
        {
            string accessToken = await WechatCommonManager.GetAccessTokenAsync(tenantId);

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

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

            return(sendResult);
        }