diff --git a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java index f8670482d..23bdc5cbf 100644 --- a/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java +++ b/src/main/java/au/com/royalpay/payment/manage/riskbusiness/core/impl/RiskBusinessServiceImpl.java @@ -66,6 +66,7 @@ import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; @@ -940,16 +941,17 @@ public class RiskBusinessServiceImpl implements RiskBusinessService, ManagerTodo ctx.setVariable("title", "RoyalPay风控调查 — " + client.getString("short_name")); break; case RISK_ORDER_TYPE_CHARGEBACK: - for (String orderId : realOrderIds) { - JSONObject order = orderMapper.findOrderById(orderId, client.getIntValue("client_id")); - if (order == null) { - throw new BadRequestException("Order: " + orderId + " not exists"); - } - order.put(ExtParamsUtils.EXT_PARAMS, ExtParamsUtils.getExtParams(order)); - orders.add(order); + Assert.isTrue(realOrderIds.length == 1, "Invalid risk event"); + String orderId = realOrderIds[0]; + JSONObject order = orderMapper.findOrderById(orderId, client.getIntValue("client_id")); + if (order == null) { + throw new BadRequestException("Order: " + orderId + " not exists"); } + order.put("pay_time", DateFormatUtils.format(order.getDate("pay_time"), "yyyy-MM-dd HH:mm:ss")); + + order.put(ExtParamsUtils.EXT_PARAMS, ExtParamsUtils.getExtParams(order)); + ctx.setVariable("orderInfo", order); ctx.setVariable("title", "Chargeback Notification from UPay"); - ctx.setVariable("orders", orders); break; } return ctx; diff --git a/src/main/resources/templates/mail/risk_upload_mail.html b/src/main/resources/templates/mail/risk_upload_mail.html index 011d2a56a..70050b154 100644 --- a/src/main/resources/templates/mail/risk_upload_mail.html +++ b/src/main/resources/templates/mail/risk_upload_mail.html @@ -146,58 +146,58 @@ RoyalPay's risk management system has identified abnormal transactions from your records in a short time(Single person pays large sums several timesfrequent refund transactions),which triggered the platform risk control warning. Here reminds: Do not use the platform for illegal transactions. Once verified, the payment authority will be closed.

- Dear : + + Dear UPay merchant :
+ 尊敬的UPay商户 :
+

- - - 由于消费者申请Chargeback,请于 - - 下午5:00(悉尼时间)前 - 尽可能提供以下证明材料: + You have received a Chargeback for the following transaction from the Cardholder's bank. + The transaction funds have been temporarily frozen.You have been charged the Chargeback Fee 40AUD as indicated + in your Pricing Schedule and the original transaction amount has been debited from your account balance. + Please provide the materials in English by + by 6:00 pm (Sydney time). +
+ 您已收到来自持卡人银行的Chargeback。因此该交易款已被暂时冻结,并从您的账户余额中扣除Chargeback Fee 40AUD。请在 + + 下午6:00(悉尼时间)前 + 提供以下英文版材料: +

+

+ If you have already reversed this transaction, please provide details of the refund so that we can return the + debit to the Cardholder's bank. + If you have not refunded this transaction, or if an error has occurred, do not process a refund to the + Cardholder's account.
+ 如果您已处理退款,请提供退款详情,以便我们将借记的款项退回持卡人的银行。如果您未退款,或者发生了错误,请不要向持卡人的帐户进行退款。

+
+
The relevant transaction details: (交易详情):
+
Order ID:
+
Date & Time:
+
Card Number:
+
Customer Name:
+
Customer Address:
+
Amount:
+
Reason:
+

- Due to customer applied chargeback issue. Please provide as much materials as best for the transaction - before (Sydney time). + Please send (Where applicable):

-

1、持卡人签名授权书和/或收据的清晰副本

1. A legible copy of the signed authority and/or receipts from the Cardholder.

-

2、任何税务发票和/或签署的披露取消政策的副本

+

1、持卡人签名授权书和/或收据的清晰副本

2. Copy of any tax invoice/s and/or signed disclosure of cancellation policy.

-

3、与在线购买的任何数字商品的销售有关的任何交易信息

+

2、任何税务发票和/或签署的披露取消政策的副本

3. Any transaction Information relating to the sale of any digital goods purchased online.

-

4、提供的商品/服务的说明和/或交付/收货的证明。(消费者买了什么,商家卖了什么,消费者收没收到货,如何收到的)

+

3、与在线购买的任何数字商品的销售有关的任何交易信息

4. Description of the goods/services supplied and/or proof of delivery/collection of goods.

-

5、邮件订单/电话订单交易收据的副本

+

4、提供的商品/服务的说明和/或交付/收货的证明。(消费者买了什么,商家卖了什么,消费者收没收到货,如何收到的)

5. Copy of Mail Order/telephone order transaction receipt.

-

6、持卡人身份或与持卡人的任何形式的通信,包括电子邮件通信。

+

5、邮件订单/电话订单交易收据的副本

6. Cardholder identification or any form of communication with the Cardholder, including email correspondence.

+

6、持卡人身份或与持卡人的任何形式的通信,包括电子邮件通信。

- - - - - - - - - - - - - - - - - - - -
Order IDAmountStatusCreate TimeCard Number
-

Chargeback将会扣除$40作为Chargeback Fee,同时扣除对应订单交易额,申诉成功后将返还订单交易额,还请及时提交材料。 感谢,辛苦。

diff --git a/src/main/ui/static/analysis/clearing-log.js b/src/main/ui/static/analysis/clearing-log.js index 015a32a85..7872bc1b1 100644 --- a/src/main/ui/static/analysis/clearing-log.js +++ b/src/main/ui/static/analysis/clearing-log.js @@ -423,7 +423,7 @@ define(['angular', 'decimal', 'uiBootstrap', 'uiRouter', 'angularEcharts'], func $scope.configHoliday = function (date) { let holiday = $scope.activeDates[$filter('date')(date, 'yyyy/MM/dd')]; if (holiday == null) { - holiday = {'holiday': date, regions: []} + holiday = {'holiday': $filter('date')(date, 'yyyy/MM/dd'), regions: []} } $uibModal.open({ templateUrl: '/static/analysis/templates/dialog_holiday_config.html',