public void PushWithdrawReject(long id) { var order = new UserWithdrawalDAC().GetById(id); var wallet = new UserWalletDAC().GetById(order.UserWalletId); var coin = new CryptocurrencyDAC().GetById(wallet.CryptoId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.UserAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.UserAccountId}") ?? "en"; var titleKey = "WithdrawalRejectTitle"; var subTitleKey = "WithdrawalRejectSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, coin.Code); var subTitle = ResourceHelper.FiiiPay.GetResource(subTitleKey, lang); string noticeId = ""; //写MongoDB [提币失败] MessagesComponent.AddMessage(order.UserAccountId, UserType.User, order.Id.ToString(), FiiiPayPushType.TYPE_WITHDRAWAL_Reject, titleKey, subTitleKey, coin.Code, content, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_WITHDRAWAL_Reject, new List <string> { regId }, order.Id, content, subTitle, noticeId); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
public void PushConsume(string id) { var orderId = Guid.Parse(id); var order = new OrderDAC().GetOrderByOrderId(orderId); var coin = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.UserAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.UserAccountId}") ?? "en"; var titleKey = "ConsumeTitle"; var subTitleKey = "ConsumeSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, coin.Code); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang, coin.Code); string noticeId = ""; //写MongoDB [消费(支付成功)] MessagesComponent.AddMessage(order.UserAccountId.Value, UserType.User, order.Id.ToString(), FiiiPayPushType.TYPE_CONSUME, titleKey, subTitleKey, coin.Code, content, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_CONSUME, new List <string> { regId }, order.Id, content, subTitle, noticeId); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
public void PushKYC_LV2_REJECT(long id) { var record = new VerifyRecordDAC().GetById(id); if (record == null) { return; } var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{record.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{record.AccountId}") ?? "en"; var titleKey = "KYC_LV2_REJECTTitle"; var subTitleKey = "KYC_LV2_REJECTSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetResource("KYC_LV2_REJECTTitle", new CultureInfo(lang)); var subTitle = ResourceHelper.FiiiPay.GetResource("KYC_LV2_REJECTSubTitle", new CultureInfo(lang)); string noticeId = ""; MessagesComponent.AddMessage(record.AccountId, UserType.User, record.Id.ToString(), FiiiPayPushType.TYPE_USER_KYC_LV2_REJECT, titleKey, subTitleKey, null, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_USER_KYC_LV2_REJECT, new List <string> { regId }, id, title, subTitle, Guid.NewGuid().ToString()); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushTransferOut(long id) { var transfer = new UserTransferDAC().GetTransfer(id); Guid accountId = transfer.FromUserAccountId; var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{accountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{accountId}") ?? "en"; string titleKey = "TransferOutTitle"; string subTitleKey = "TransferOutSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetFormatResource(titleKey, new CultureInfo(lang), transfer.CoinCode); var subTitle = ResourceHelper.FiiiPay.GetResource(subTitleKey, new CultureInfo(lang)); List <string> regIdList = new List <string> { regId }; string noticeId = ""; MessagesComponent.AddMessage(accountId, UserType.User, id.ToString(), FiiiPayPushType.TYPE_USER_TRANSFER_OUT, titleKey, subTitleKey, transfer.CoinCode, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_USER_TRANSFER_OUT, regIdList, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushInviteSuccess(long id) { var pfDAC = new ProfitDetailDAC(); var accountId = pfDAC.GetAccountId(id); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{accountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{accountId}") ?? "en"; string titleKey = "奖励FIII"; string subTitleKey = "奖励子标题"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetResource(titleKey, new CultureInfo(lang)); var subTitle = ResourceHelper.FiiiPay.GetResource(subTitleKey, new CultureInfo(lang)); string noticeId = ""; MessagesComponent.AddMessage(accountId, UserType.User, id.ToString(), FiiiPayPushType.TYPE_INVITE_REWARD, titleKey, subTitleKey, "FIII", title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_INVITE_REWARD, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushBiller(Guid id) { var billerOrder = new BillerOrderDAC().GetById(id); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{billerOrder.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{billerOrder.AccountId}") ?? "en"; var titleKey = billerOrder.Status == BillerOrderStatus.Complete ? "BillerTitle" : "BillerFailTitle"; var subTitleKey = billerOrder.Status == BillerOrderStatus.Complete ? "BillerCompleteSubTitle" : "BillerFailSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, billerOrder.CryptoCode); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang); string noticeId = ""; //写MongoDB [消费(支付成功)] MessagesComponent.AddMessage(billerOrder.AccountId, UserType.User, billerOrder.Id.ToString(), billerOrder.Status == BillerOrderStatus.Complete ? FiiiPayPushType.TYPE_BILLER_COMPLETE : FiiiPayPushType.TYPE_BILLER_FAIL, titleKey, subTitleKey, billerOrder.CryptoCode, content, subTitle, out noticeId); RegPush(billerOrder.Status == BillerOrderStatus.Complete ? FiiiPayPushType.TYPE_BILLER_COMPLETE : FiiiPayPushType.TYPE_BILLER_FAIL, new List <string> { regId }, billerOrder.Id, content, subTitle, noticeId); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
/// <summary> /// /// </summary> /// <param name="tuple"> /// Guid为fiiipay用户的id,long为POSMerchantBindRecords的主键 /// </param> public void InviteFiiiposSuccess(Tuple <Guid, long> tuple) { var record = new POSMerchantBindRecordDAC().GetById(tuple.Item2); var accountId = tuple.Item1; var merchant = new MerchantAccountDAC().GetById(record.MerchantId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{accountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{accountId}") ?? "en"; string titleKey = "InviteFiiiposSuccessTitle"; string subTitleKey = "InviteFiiiposSuccessSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetResource(titleKey, new CultureInfo(lang)); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, new CultureInfo(lang), merchant.MerchantName); string noticeId = ""; MessagesComponent.AddMessage(accountId, UserType.User, record.Id.ToString(), FiiiPayPushType.TYPE_INVITE_FIIIPOS_SUCCESS, titleKey, subTitleKey, merchant.MerchantName, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_INVITE_FIIIPOS_SUCCESS, new List <string> { regId }, record.Id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
/// <summary> /// 网关支付 /// </summary> /// <param name="tuple"> /// Guid为fiiipay用户的id,long为POSMerchantBindRecords的主键 /// </param> public void ShopPaymentRefund(Guid id) { var record = new GatewayRefundOrderDAC().GetById(id); var order = new GatewayOrderDAC().GetByOrderId(record.OrderId); var cryptoCurrency = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.UserAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.UserAccountId}") ?? "en"; string titleKey = "GatewayOrderPaymentRefundTitle"; string subTitleKey = "GatewayOrderPaymentRefundSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetFormatResource(titleKey, new CultureInfo(lang), cryptoCurrency.Code); var subTitle = ResourceHelper.FiiiPay.GetResource(subTitleKey, new CultureInfo(lang)); string noticeId = ""; MessagesComponent.AddMessage(order.UserAccountId.Value, UserType.User, record.Id.ToString(), FiiiPayPushType.TYPE_GATEWAY_ORDER_PAYMENT_REFUND, titleKey, subTitleKey, cryptoCurrency.Code, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_GATEWAY_ORDER_PAYMENT_REFUND, new List <string> { regId }, record.Id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushTransferInto(long id) { var transfer = new UserTransferDAC().GetTransfer(id); Guid accountId = transfer.ToUserAccountId; //TODO: //var profile = new UserProfileAgent().GetUserProfile(transfer.FromUserAccountId); //string showFullname = (string.IsNullOrEmpty(profile.FirstName) ? "" : "* ") + profile.LastName; var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{accountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{accountId}") ?? "en"; string titleKey = "TransferIntoTitle"; string subTitleKey = "TransferIntoSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetFormatResource(titleKey, new CultureInfo(lang), transfer.CoinCode); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, new CultureInfo(lang), "***"); List <string> regIdList = new List <string> { regId }; string noticeId = ""; MessagesComponent.AddMessage(accountId, UserType.User, id.ToString(), FiiiPayPushType.TYPE_USER_TRANSFER_INTO, titleKey, subTitleKey, transfer.CoinCode, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_USER_TRANSFER_INTO, regIdList, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushTransferToEx(long id) { var order = new UserExTransferOrderDAC().GetById(id); var crypto = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.AccountId}") ?? "en"; var titleKey = "TransferToFiiiExTitle"; var subTitleKey = "TransferToFiiiExSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var title = ResourceHelper.FiiiPay.GetFormatResource(titleKey, new CultureInfo(lang), crypto.Code); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, new CultureInfo(lang), crypto.Code); string noticeId = ""; //写MongoDB [] MessagesComponent.AddMessage(order.AccountId, UserType.User, id.ToString(), FiiiPayPushType.TYPE_TRANSFER_TO_EX, titleKey, subTitleKey, crypto.Code, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_TRANSFER_TO_EX, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void BackOfficeRefundOrder(string orderno) { var order = new OrderDAC().GetByOrderNo(orderno); var coin = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.UserAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.UserAccountId}") ?? "en"; var titleKey = "BackOfficeRefundOrderTitle"; var subTitleKey = "BackOfficeRefundOrderSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } //var content = string.Format(Resources.ResourceHelper.GetString(titleKey, new System.Globalization.CultureInfo(lang)), coin.Code); //var subTitle = string.Format(Resources.ResourceHelper.GetString(subTitleKey, new System.Globalization.CultureInfo(lang)), coin.Code); var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, coin.Code); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang, coin.Code); string noticeId = ""; //写MongoDB [退款] MessagesComponent.AddMessage(order.UserAccountId.Value, UserType.User, order.Id.ToString(), FiiiPayPushType.TYPE_REFUND_ORDER, titleKey, subTitleKey, coin.Code, content, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_REFUND_ORDER, new List <string> { regId }, order.Id, content, subTitle, noticeId); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
public static void AddPromotionApplied(this MessagesComponent messageComponent, CommerceContext commerceContext, string awardingBlock) { var propertiesModel = commerceContext.GetObject <PropertiesModel>(); object promotionName = propertiesModel?.GetPropertyValue("PromotionId") ?? awardingBlock; messageComponent.AddMessage(commerceContext.GetPolicy <KnownMessageCodePolicy>().Promotions, $"PromotionApplied: {promotionName}"); }
private void PushStoreOrderConsume(StoreOrderMessage order) { var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.UserAccountId}") ?? "en"; var titleKey = "StoreOrderConsumeTitle"; var subTitleKey = "StoreOrderConsumeSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, order.CryptoCode); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang, order.CryptoCode); MessagesComponent.AddMessage(order.UserAccountId, UserType.User, order.Id.ToString(), FiiiPayPushType.TYPE_STOREORDER_CONSUME, titleKey, subTitleKey, order.CryptoCode, content, subTitle, out string noticeId); }
public void PushOrderPayed(Guid orderId) { var order = new OrderDAC().GetOrderByOrderId(orderId); var coin = new CryptocurrencyDAC().GetById(order.CryptoId); var agent = new JPushAgent(); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{order.MerchantAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{order.MerchantAccountId}") ?? "en"; var titleKey = "ReceiptTitle"; var subTitleKey = "ReceiptSubTitle"; var content = ResourceHelper.FiiiPos.GetFormatResource(titleKey, lang, coin.Code); var subTitle = ResourceHelper.FiiiPos.GetResource(subTitleKey, lang); string noticeId = ""; //写MongoDB [收款成功] MessagesComponent.AddMessage(order.MerchantAccountId, UserType.Merchant, order.Id.ToString(), FiiiPayPushType.TYPE_RECEIPT, titleKey, subTitleKey, coin.Code, content, subTitle, out noticeId); var result = agent.Push(new PushPayload { Audience = new { registration_id = new List <string> { regId } }, Platform = "all", Notification = new Notification { Alert = content, Android = new Android { Alert = subTitle, Title = content, Extras = PushHelper.GetNewExtras(FiiiPayPushType.TYPE_RECEIPT, orderId, content, subTitle, noticeId) } }, Message = new Message { Content = content, Extras = PushHelper.GetNewExtras(FiiiPayPushType.TYPE_RECEIPT, orderId, content, subTitle, noticeId) }, Options = new Options { IsApnsProduction = IsPushProduction } }); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
public void MerchantLv2Verified(long id) { var record = new VerifyRecordDAC().GetById(id); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{record.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{record.AccountId}") ?? "en"; var titleKey = "MerchantLv2Verified"; var subTitleKey = "MerchantLv2VerifiedSubTitle"; var title = ResourceHelper.FiiiPos.GetResource(titleKey, lang); var subTitle = ResourceHelper.FiiiPos.GetResource(subTitleKey, lang); string noticeId = ""; MessagesComponent.AddMessage(record.AccountId, UserType.Merchant, record.Id.ToString(), FiiiPayPushType.TYPE_Merchant_KYC_LV2_VERIFIED, titleKey, subTitleKey, null, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_Merchant_KYC_LV2_VERIFIED, new List <string> { regId }, id, title, subTitle, Guid.NewGuid().ToString()); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushInviteSuccess(long id) { var pfDAC = new ProfitDetailDAC(); var accountId = pfDAC.GetAccountId(id); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{accountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{accountId}") ?? "en"; string titleKey = "奖励FIII"; string subTitleKey = "奖励子标题"; var title = ResourceHelper.FiiiPos.GetResource(titleKey, new CultureInfo(lang)); var subTitle = ResourceHelper.FiiiPos.GetResource(subTitleKey, new CultureInfo(lang)); string noticeId = ""; MessagesComponent.AddMessage(accountId, UserType.User, id.ToString(), FiiiPayPushType.TYPE_INVITE_REWARD, titleKey, subTitleKey, "FIII", title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_INVITE_REWARD, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void FiiipayMerchantProfileVerified(FiiiPayMerchantProfileVerified profileMessage) { var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{profileMessage.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{profileMessage.AccountId}") ?? "en"; string titleKey = "", subTitleKey = ""; int pushType; if (profileMessage.VerifyResult == Entities.Enums.VerifyStatus.Certified) { titleKey = "FiiipayMerchantCertifiedTitle"; subTitleKey = "FiiipayMerchantCertifiedSubTitle"; pushType = FiiiPayPushType.FIIIPAY_MERCHANT_VERIFIED; } else if (profileMessage.VerifyResult == Entities.Enums.VerifyStatus.Disapproval) { titleKey = "FiiipayMerchantDisapprovalTitle"; subTitleKey = "FiiipayMerchantDisapprovalSubTitle"; pushType = FiiiPayPushType.FIIIPAY_MERCHANT_DISAPPROVED; } else { return; } if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception($"没有找到资源:{titleKey},{subTitleKey}"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang); string noticeId = ""; LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); MessagesComponent.AddMessage(profileMessage.AccountId, UserType.User, profileMessage.VerifyRecordId.ToString(), pushType, titleKey, subTitleKey, null, content, subTitle, out noticeId); RegPush(pushType, new List <string> { regId }, profileMessage.VerifyRecordId, content, subTitle, noticeId); }
public void PushTransferToEx(long id) { var order = new MerchantExTransferOrderDAC().GetById(id); var crypto = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{order.AccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{order.AccountId}") ?? "en"; var titleKey = "TransferToFiiiExTitle"; var subTitleKey = "TransferToFiiiExSubTitle"; var title = ResourceHelper.FiiiPos.GetFormatResource(titleKey, lang, crypto.Code); var subTitle = ResourceHelper.FiiiPos.GetFormatResource(subTitleKey, lang, crypto.Code); string noticeId = ""; //写MongoDB [] MessagesComponent.AddMessage(order.AccountId, UserType.Merchant, id.ToString(), FiiiPayPushType.TYPE_TRANSFER_TO_EX, titleKey, subTitleKey, crypto.Code, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_TRANSFER_TO_EX, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushWithdrawReject(long id) { var withdraw = new MerchantWithdrawalDAC().GetById(id); var wallet = new MerchantWalletDAC().GetById(withdraw.MerchantWalletId); var crypto = new CryptocurrencyDAC().GetById(wallet.CryptoId); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{withdraw.MerchantAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{withdraw.MerchantAccountId}") ?? "en"; var titleKey = "WithdrawalRejectTitle"; var subTitleKey = "WithdrawalRejectSubTitle"; var title = ResourceHelper.FiiiPos.GetFormatResource(titleKey, lang, crypto.Code); var subTitle = ResourceHelper.FiiiPos.GetResource(subTitleKey, lang); string noticeId = ""; //写MongoDB [提币失败] MessagesComponent.AddMessage(withdraw.MerchantAccountId, UserType.Merchant, id.ToString(), FiiiPayPushType.TYPE_WITHDRAWAL_Reject, titleKey, subTitleKey, crypto.Code, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_WITHDRAWAL_Reject, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
public void PushRefundOrder(string orderno) { var order = new OrderDAC().GetByOrderNo(orderno); var coin = new CryptocurrencyDAC().GetById(order.CryptoId); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{order.MerchantAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{order.MerchantAccountId}") ?? "en"; var titleKey = "BackOfficeRefundOrderTitle"; var subTitleKey = "BackOfficeRefundOrderSubTitle"; var content = ResourceHelper.FiiiPos.GetFormatResource(titleKey, lang, coin.Code); var subTitle = ResourceHelper.FiiiPos.GetFormatResource(subTitleKey, lang, coin.Code); string noticeId = ""; //写MongoDB [提币成功] MessagesComponent.AddMessage(order.MerchantAccountId, UserType.Merchant, order.Id.ToString(), FiiiPayPushType.TYPE_REFUND_ORDER, titleKey, subTitleKey, coin.Code, content, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_REFUND_ORDER, new List <string> { regId }, order.Id, content, subTitle, noticeId); LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); }
public void PushDepositCancel(long id) { var deposit = new MerchantDepositDAC().GetById(id); var wallet = new MerchantWalletDAC().GetById(deposit.MerchantWalletId); var crypto = new CryptocurrencyDAC().GetById(wallet.CryptoId); var regId = RedisHelper.StringGet($"{FiiiPOS_APP_Notice_MerchantId}:{deposit.MerchantAccountId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"{FiiiPOS_APP_Language_MerchantId}:{deposit.MerchantAccountId}") ?? "en"; var titleKey = "DepositCancelTitle"; var subTitleKey = "DepositCancelSubTitle"; var title = ResourceHelper.FiiiPos.GetFormatResource(titleKey, lang, crypto.Code); var subTitle = ResourceHelper.FiiiPos.GetFormatResource(subTitleKey, lang, crypto.Code); string noticeId = ""; //写MongoDB [充币失败] MessagesComponent.AddMessage(deposit.MerchantAccountId, UserType.Merchant, id.ToString(), FiiiPayPushType.TYPE_DEPOSIT_CANCEL, titleKey, subTitleKey, crypto.Code, title, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_DEPOSIT_CANCEL, new List <string> { regId }, id, title, subTitle, noticeId); LogHelper.Info($"--------{lang}------{title}----------{subTitle}"); }
private void PushStoreOrderIncome(StoreOrderMessage order) { var regId = RedisHelper.StringGet($"FiiiPay:Notice:UserId:{order.MerchantInfoId}"); var lang = RedisHelper.StringGet(REDIS_LANGUAGE_DBINDEX, $"FiiiPay:Language:{order.MerchantInfoId}") ?? "en"; var titleKey = "StoreOrderIncomeTitle"; var subTitleKey = "StoreOrderIncomeSubTitle"; if (!(_resourcePropertyNames.Contains(titleKey) && _resourcePropertyNames.Contains(subTitleKey))) { throw new Exception("没有找到资源"); } var content = ResourceHelper.FiiiPay.GetFormatResource(titleKey, lang, order.CryptoCode); var subTitle = ResourceHelper.FiiiPay.GetFormatResource(subTitleKey, lang, order.CryptoCode); string noticeId = ""; LogHelper.Info($"--------{lang}------{content}----------{subTitle}"); MessagesComponent.AddMessage(order.MerchantInfoId, UserType.User, order.Id.ToString(), FiiiPayPushType.TYPE_STOREORDER_INCOME, titleKey, subTitleKey, order.CryptoCode, content, subTitle, out noticeId); RegPush(FiiiPayPushType.TYPE_STOREORDER_INCOME, new List <string> { regId }, order.Id, content, subTitle, noticeId); }
private async Task <bool?> CalculateCartLinePrice( CartLineComponent arg, CommercePipelineExecutionContext context) { ProductArgument productArgument = ProductArgument.FromItemId(arg.ItemId); SellableItem sellableItem = null; if (productArgument.IsValid()) { sellableItem = context.CommerceContext.GetEntity((Func <SellableItem, bool>)(s => s.ProductId.Equals(productArgument.ProductId, StringComparison.OrdinalIgnoreCase))); if (sellableItem == null) { string simpleName = productArgument.ProductId.SimplifyEntityName(); sellableItem = context.CommerceContext.GetEntity((Func <SellableItem, bool>)(s => s.ProductId.Equals(simpleName, StringComparison.OrdinalIgnoreCase))); if (sellableItem != null) { sellableItem.ProductId = simpleName; } } } if (sellableItem == null) { CommercePipelineExecutionContext executionContext = context; CommerceContext commerceContext = context.CommerceContext; string error = context.GetPolicy <KnownResultCodes>().Error; object[] args = new object[] { arg.ItemId }; string defaultMessage = "Item '" + arg.ItemId + "' is not purchasable."; executionContext.Abort(await commerceContext.AddMessage(error, "LineIsNotPurchasable", args, defaultMessage), context); executionContext = null; return(new bool?()); } MessagesComponent messagesComponent = arg.GetComponent <MessagesComponent>(); messagesComponent.Clear(context.GetPolicy <KnownMessageCodePolicy>().Pricing); if (sellableItem.HasComponent <MessagesComponent>()) { List <MessageModel> messages = sellableItem.GetComponent <MessagesComponent>().GetMessages(context.GetPolicy <KnownMessageCodePolicy>().Pricing); messagesComponent.AddMessages(messages); } arg.UnitListPrice = sellableItem.ListPrice; string listPriceMessage = "CartItem.ListPrice<=SellableItem.ListPrice: Price=" + arg.UnitListPrice.AsCurrency(false, null); string sellPriceMessage = string.Empty; PurchaseOptionMoneyPolicy optionMoneyPolicy = new PurchaseOptionMoneyPolicy(); if (sellableItem.HasPolicy <PurchaseOptionMoneyPolicy>()) { optionMoneyPolicy.SellPrice = sellableItem.GetPolicy <PurchaseOptionMoneyPolicy>().SellPrice; sellPriceMessage = "CartItem.SellPrice<=SellableItem.SellPrice: Price=" + optionMoneyPolicy.SellPrice.AsCurrency(false, null); } PriceSnapshotComponent snapshotComponent; if (sellableItem.HasComponent <ItemVariationsComponent>()) { ItemVariationSelectedComponent lineVariant = arg.ChildComponents.OfType <ItemVariationSelectedComponent>().FirstOrDefault(); ItemVariationsComponent itemVariationsComponent = sellableItem.GetComponent <ItemVariationsComponent>(); ItemVariationComponent itemVariationComponent; if (itemVariationsComponent == null) { itemVariationComponent = null; } else { IList <Component> childComponents = itemVariationsComponent.ChildComponents; itemVariationComponent = childComponents?.OfType <ItemVariationComponent>().FirstOrDefault(v => { return(!string.IsNullOrEmpty(v.Id) ? v.Id.Equals(lineVariant?.VariationId, StringComparison.OrdinalIgnoreCase) : false); }); } if (itemVariationComponent != null) { if (itemVariationComponent.HasComponent <MessagesComponent>()) { List <MessageModel> messages = itemVariationComponent.GetComponent <MessagesComponent>().GetMessages(context.GetPolicy <KnownMessageCodePolicy>().Pricing); messagesComponent.AddMessages(messages); } arg.UnitListPrice = itemVariationComponent.ListPrice; listPriceMessage = "CartItem.ListPrice<=SellableItem.Variation.ListPrice: Price=" + arg.UnitListPrice.AsCurrency(false, null); if (itemVariationComponent.HasPolicy <PurchaseOptionMoneyPolicy>()) { optionMoneyPolicy.SellPrice = itemVariationComponent.GetPolicy <PurchaseOptionMoneyPolicy>().SellPrice; sellPriceMessage = "CartItem.SellPrice<=SellableItem.Variation.SellPrice: Price=" + optionMoneyPolicy.SellPrice.AsCurrency(false, null); } } snapshotComponent = itemVariationComponent != null?itemVariationComponent.ChildComponents.OfType <PriceSnapshotComponent>().FirstOrDefault() : null; } else { snapshotComponent = sellableItem.Components.OfType <PriceSnapshotComponent>().FirstOrDefault(); } string currentCurrency = context.CommerceContext.CurrentCurrency(); PriceTier priceTier = snapshotComponent?.Tiers.OrderByDescending(t => t.Quantity).FirstOrDefault(t => { return(t.Currency.Equals(currentCurrency, StringComparison.OrdinalIgnoreCase) ? t.Quantity <= arg.Quantity : false); }); Customer customer = await _findEntityPipeline.Run(new FindEntityArgument(typeof(Customer), context.CommerceContext.CurrentCustomerId(), false), context) as Customer; bool isMembershipLevelPrice = false; if (customer != null && customer.HasComponent <MembershipSubscriptionComponent>()) { var membershipSubscriptionComponent = customer.GetComponent <MembershipSubscriptionComponent>(); var membershipLevel = membershipSubscriptionComponent.MemerbshipLevelName; if (snapshotComponent != null && snapshotComponent.HasComponent <MembershipTiersComponent>()) { var membershipTiersComponent = snapshotComponent.GetComponent <MembershipTiersComponent>(); var membershipPriceTier = membershipTiersComponent.Tiers.FirstOrDefault(x => x.MembershipLevel == membershipLevel); if (membershipPriceTier != null) { optionMoneyPolicy.SellPrice = new Money(membershipPriceTier.Currency, membershipPriceTier.Price); isMembershipLevelPrice = true; sellPriceMessage = string.Format("CartItem.SellPrice<=PriceCard.ActiveSnapshot: MembershipLevel={0}|Price={1}|Qty={2}", membershipSubscriptionComponent.MemerbshipLevelName, optionMoneyPolicy.SellPrice.AsCurrency(false, null), membershipPriceTier.Quantity); } } } if (!isMembershipLevelPrice && priceTier != null) { optionMoneyPolicy.SellPrice = new Money(priceTier.Currency, priceTier.Price); sellPriceMessage = string.Format("CartItem.SellPrice<=PriceCard.ActiveSnapshot: Price={0}|Qty={1}", optionMoneyPolicy.SellPrice.AsCurrency(false, null), priceTier.Quantity); } arg.Policies.Remove(arg.Policies.OfType <PurchaseOptionMoneyPolicy>().FirstOrDefault()); if (optionMoneyPolicy.SellPrice == null) { return(false); } arg.SetPolicy(optionMoneyPolicy); if (!string.IsNullOrEmpty(sellPriceMessage)) { messagesComponent.AddMessage(context.GetPolicy <KnownMessageCodePolicy>().Pricing, sellPriceMessage); } if (!string.IsNullOrEmpty(listPriceMessage)) { messagesComponent.AddMessage(context.GetPolicy <KnownMessageCodePolicy>().Pricing, listPriceMessage); } return(true); }
public override async Task <SellableItem> Run( SellableItem arg, CommercePipelineExecutionContext context) { if (arg == null) { return(null); } if (arg.HasPolicy <PurchaseOptionMoneyPolicy>() && arg.GetPolicy <PurchaseOptionMoneyPolicy>().Expires > DateTimeOffset.UtcNow && arg.GetPolicy <PurchaseOptionMoneyPolicy>().SellPrice.CurrencyCode.Equals(context.CommerceContext.CurrentCurrency(), StringComparison.OrdinalIgnoreCase)) { return(arg); } if (arg.HasComponent <PriceSnapshotComponent>()) { arg.Components.Remove(arg.GetComponent <PriceSnapshotComponent>()); } string currentCurrency = context.CommerceContext.CurrentCurrency(); MessagesComponent messagesComponent = arg.GetComponent <MessagesComponent>(); Money sellPrice = null; PriceCardPolicy priceCardPolicy = arg.Policies.OfType <PriceCardPolicy>().FirstOrDefault(); PriceSnapshotComponent snapshotComponent = null; bool pricingByTags = false; if (!string.IsNullOrEmpty(priceCardPolicy?.PriceCardName)) { snapshotComponent = await _resolveSnapshotByCardPipeline.Run(priceCardPolicy.PriceCardName, context); } else if (arg.Tags.Any()) { snapshotComponent = await _resolveSnapshotByTagsPipeline.Run(arg.Tags, context); pricingByTags = true; } PriceTier priceTier = snapshotComponent?.Tiers.FirstOrDefault(t => { return(t.Currency.Equals(currentCurrency, StringComparison.OrdinalIgnoreCase) ? t.Quantity == decimal.One : false); }); Customer customer = await _findEntityPipeline.Run(new FindEntityArgument(typeof(Customer), context.CommerceContext.CurrentCustomerId(), false), context) as Customer; bool isMembershipLevelPrice = false; if (customer != null && customer.HasComponent <MembershipSubscriptionComponent>()) { var membershipSubscriptionComponent = customer.GetComponent <MembershipSubscriptionComponent>(); var customerMemerbshipLevelName = membershipSubscriptionComponent.MemerbshipLevelName; var memerbshipLevelName = membershipSubscriptionComponent.MemerbshipLevelName; if (snapshotComponent != null && snapshotComponent.HasComponent <MembershipTiersComponent>()) { var membershipTiersComponent = snapshotComponent.GetComponent <MembershipTiersComponent>(); var membershipPriceTier = membershipTiersComponent.Tiers.FirstOrDefault(x => x.MembershipLevel == memerbshipLevelName); if (membershipPriceTier != null) { sellPrice = new Money(membershipPriceTier.Currency, membershipPriceTier.Price); isMembershipLevelPrice = true; messagesComponent.AddMessage(context.GetPolicy <KnownMessageCodePolicy>().Pricing, pricingByTags ? string.Format("SellPrice<=Tags.Snapshot: MembershipLevel={0}|Price={1}|Qty={2}|Tags='{3}'", customerMemerbshipLevelName, sellPrice.AsCurrency(false, null), membershipPriceTier.Quantity, string.Join(", ", snapshotComponent.Tags.Select(c => c.Name))) : string.Format("SellPrice<=PriceCard.Snapshot: MembershipLevel={0}|Price={1}|Qty={2}|PriceCard={3}", customerMemerbshipLevelName, sellPrice.AsCurrency(false, null), membershipPriceTier.Quantity, priceCardPolicy.PriceCardName)); } } } if (!isMembershipLevelPrice && priceTier != null) { sellPrice = new Money(priceTier.Currency, priceTier.Price); messagesComponent.AddMessage(context.GetPolicy <KnownMessageCodePolicy>().Pricing, pricingByTags ? string.Format("SellPrice<=Tags.Snapshot: Price={0}|Qty={1}|Tags='{2}'", sellPrice.AsCurrency(false, null), priceTier.Quantity, string.Join(", ", snapshotComponent.Tags.Select(c => c.Name))) : string.Format("SellPrice<=PriceCard.Snapshot: Price={0}|Qty={1}|PriceCard={2}", sellPrice.AsCurrency(false, null), priceTier.Quantity, priceCardPolicy.PriceCardName)); } if (snapshotComponent != null) { arg.SetComponent(snapshotComponent); } if (sellPrice != null) { arg.SetPolicy(new PurchaseOptionMoneyPolicy() { SellPrice = sellPrice }); } return(arg); }