Răsfoiți Sursa

@
feat: 银行卡到账时效 + 移除反查重试 + 开放API文档对齐

1. 前端/后端支持 withdraw_timeliness (T0/T1) 银行卡到账时效选择
2. 后端 business_params 构建加入 withdraw_timeliness
3. 删除 retryDealingTransfers 定时反查任务(银行卡 T+1/T+2 不主动改失败)
4. TransferEntity.json/jsonb 列加 JsonbTypeHandler 修复 PG 类型错误
5. 开放API查询转账 payee_info 从JSON字符串改为解析对象返回
6. 接入文档全面对齐后端实际逻辑(identity_type枚举/转账场景/必填项/回调格式)

@

alphaH 1 zi în urmă
părinte
comite
d74a01e2bb

+ 13 - 0
frontend/src/views/module_payment/account/index.vue

@@ -230,6 +230,13 @@
                 <el-input v-model="transferForm.payee_info.identity" :placeholder="isAlipayPayee ? '请输入收款方支付宝账号' : '请输入收款方银行卡号'" />
               </el-form-item>
               <template v-if="transferForm.payee_info.identity_type === 'BANKCARD_ACCOUNT'">
+                <el-form-item label="到账时效" prop="withdraw_timeliness">
+                  <el-radio-group v-model="transferForm.withdraw_timeliness">
+                    <el-radio label="T1">次日到账(默认)</el-radio>
+                    <el-radio label="T0">当天到账</el-radio>
+                  </el-radio-group>
+                  <div class="form-item-tip">当天到账受银行处理时效影响,不保证100%实时到账</div>
+                </el-form-item>
                 <el-form-item label="账户类型" prop="payee_info.bankcard_ext_info.account_type">
                   <el-select v-model="transferForm.payee_info.bankcard_ext_info!.account_type" placeholder="请选择账户类型">
                     <el-option label="公司账户" value="1" />
@@ -1069,6 +1076,7 @@ const transferForm = reactive({
   order_title: "",
   remark: "",
   transfer_scene_name: "佣金报酬",
+  withdraw_timeliness: "T1",
   payee_info: {
     identity_type: "ALIPAY_USER_ID",
     name: "",
@@ -1657,6 +1665,10 @@ async function handleTransfer() {
                 ? transferForm.payee_info.bankcard_ext_info
                 : undefined,
           },
+          ext_info:
+            transferForm.payee_info.identity_type === "BANKCARD_ACCOUNT"
+              ? { withdraw_timeliness: transferForm.withdraw_timeliness }
+              : undefined,
         });
         // ElMessage.success("转账申请已提交");
         handleTransferListChange();
@@ -1670,6 +1682,7 @@ async function handleTransfer() {
 
 function handleTransferReset() {
   transferFormRef.value?.resetFields();
+  transferForm.withdraw_timeliness = "T1";
   transferForm.payee_info = {
     identity_type: "ALIPAY_USER_ID",
     name: "",

+ 100 - 97
frontend/src/views/module_payment/apikey/index.vue

@@ -633,10 +633,16 @@ Signature: {signature}</code></pre>
                       <td>转账标题(若传参,支付宝要求必须大于四个字)</td>
                     </tr>
                     <tr>
-                      <td>remark</td>
+                      <td>transfer_scene_name</td>
                       <td>string</td>
                       <td>否</td>
-                      <td>转账备注(若传参,支付宝要求必须大于四个字)</td>
+                      <td>转账场景:佣金报酬 / 业务结算 / 二手回收。不传默认"佣金报酬"</td>
+                    </tr>
+                    <tr>
+                      <td>remark</td>
+                      <td>string</td>
+                      <td>是</td>
+                      <td>转账备注,填写转账事由(支付宝要求必须大于四个字)</td>
                     </tr>
                     <tr>
                       <td>third_biz_no</td>
@@ -668,7 +674,7 @@ Signature: {signature}</code></pre>
                                   <td>identity_type</td>
                                   <td>string</td>
                                   <td>是</td>
-                                  <td>收款方类型:alipay(支付宝账户)/ bank(银行卡)</td>
+                                  <td>收款方类型:ALIPAY_USER_ID(支付宝UID)/ ALIPAY_LOGON_ID(支付宝手机号或邮箱)/ BANKCARD_ACCOUNT(银行卡)</td>
                                 </tr>
                                 <tr>
                                   <td>name</td>
@@ -693,7 +699,7 @@ Signature: {signature}</code></pre>
                                         class="expand-btn"
                                       >
                                         {{ expandedSections.bankcard_ext_info ? "▼" : "▶" }}
-                                        银行卡信息(当 identity_type 为 bank 时必填)
+                                        银行卡信息(当 identity_type 为 BANKCARD_ACCOUNT 时必填)
                                       </span>
                                       <div
                                         v-if="expandedSections.bankcard_ext_info"
@@ -757,6 +763,38 @@ Signature: {signature}</code></pre>
                         </div>
                       </td>
                     </tr>
+                    <tr>
+                      <td>ext_info</td>
+                      <td>object</td>
+                      <td>否</td>
+                      <td>
+                        <div class="expandable-section">
+                          <span @click="toggleExpand('ext_info')" class="expand-btn">
+                            {{ expandedSections.ext_info ? "▼" : "▶" }} 扩展参数(支付宝 business_params)
+                          </span>
+                          <div v-if="expandedSections.ext_info" class="expandable-content">
+                            <table class="api-table nested-table">
+                              <thead>
+                                <tr>
+                                  <th>参数名</th>
+                                  <th>类型</th>
+                                  <th>是否必填</th>
+                                  <th>描述</th>
+                                </tr>
+                              </thead>
+                              <tbody>
+                                <tr>
+                                  <td>withdraw_timeliness</td>
+                                  <td>string</td>
+                                  <td>否</td>
+                                  <td>到账时效(仅银行卡转账有效): T0=当天到账, T1=次日到账。不传默认 T1</td>
+                                </tr>
+                              </tbody>
+                            </table>
+                          </div>
+                        </div>
+                      </td>
+                    </tr>
                   </tbody>
                 </table>
 
@@ -769,11 +807,16 @@ Signature: {signature}</code></pre>
     "account_book_id": "资金账号",
     "amount": "100.00",
     "order_title": "转账标题",
+    "remark": "转账事由说明",
+    "transfer_scene_name": "佣金报酬",
     "third_biz_no": "商户订单号202604270001",
     "payee_info": {
-      "identity_type": "ALIPAY_ACCOUNT",
+      "identity_type": "ALIPAY_USER_ID",
       "name": "收款人姓名",
       "identity": "收款人支付宝账号"
+    },
+    "ext_info": {
+      "withdraw_timeliness": "T0"
     }
   }'</code></pre>
 
@@ -825,16 +868,26 @@ Signature: {signature}</code></pre>
   "code": 200,
   "message": "查询成功",
   "data": {
-    "status": "SUCCESS",
+    "out_biz_no": "2026042711122334455",
     "order_no": "2026042711122334455",
+    "third_biz_no": "商户订单号202604270001",
+    "status": "SUCCESS",
     "amount": "100.00",
+    "order_title": "转账标题",
+    "remark": "转账事由说明",
     "payee_info": {
-      "identity_type": "ALIPAY_ACCOUNT",
-      "name": "张*",
-      "identity": "z****@example.com"
+      "identity_type": "ALIPAY_USER_ID",
+      "name": "张",
+      "identity": "2088****0000"
     },
-    "created_time": "2026-04-27 11:22:33",
-    "updated_time": "2026-04-27 11:25:45"
+    "payee_type": "ALIPAY_USER_ID",
+    "fund_order_id": "2026042711122334455",
+    "enterprise_id": "2088480777900000",
+    "account_book_id": "2088480770900000",
+    "error_code": null,
+    "error_msg": null,
+    "created_time": "2026-04-27T11:22:33+08:00",
+    "updated_time": "2026-04-27T11:25:45+08:00"
   }
 }</code></pre>
 
@@ -914,12 +967,7 @@ Signature: {signature}</code></pre>
     {
       "account_book_id": "2088480770900000",
       "available_amount": "50000.00",
-      "enable_status": "ENABLE",
-      "scene": "B2B_TRANS",
-      "account_card_info": {
-        "card_no": "xxxx",
-        "bank_name": "招商银行"
-      }
+      "scene": "B2B_TRANS"
     }
   ]
 }</code></pre>
@@ -944,21 +992,11 @@ Signature: {signature}</code></pre>
                       <td>string</td>
                       <td>可用余额(单位:元,精确到小数点后两位)</td>
                     </tr>
-                    <tr>
-                      <td>enable_status</td>
-                      <td>string</td>
-                      <td>启用状态:ENABLE(启用)/ DISABLE(禁用)</td>
-                    </tr>
                     <tr>
                       <td>scene</td>
                       <td>string</td>
                       <td>场景类型:B2B_TRANS(B2B转账)</td>
                     </tr>
-                    <tr>
-                      <td>account_card_info</td>
-                      <td>object</td>
-                      <td>账户卡信息(银行卡号、银行名称等)</td>
-                    </tr>
                   </tbody>
                 </table>
 
@@ -1015,11 +1053,11 @@ Signature: {signature}</code></pre>
                   </li>
                   <li>
                     <strong>表单形式</strong>
-                    :通知参数以表单形式提交(Content-Type: multipart/form-data
+                    :通知参数以表单形式提交(Content-Type: application/x-www-form-urlencoded
                   </li>
                   <li>
                     <strong>重试机制</strong>
-                    :如果通知失败,系统会自动重试(最多2次,间隔1秒、2秒)
+                    :如果通知失败,系统会自动重试(最多3次,退避间隔1秒/2秒/4秒)
                   </li>
                 </ul>
 
@@ -1062,116 +1100,80 @@ Signature: {signature}</code></pre>
                   </thead>
                   <tbody>
                     <tr>
-                      <td>status</td>
+                      <td>out_biz_no</td>
                       <td>string</td>
-                      <td>转账状态:SUCCESS(成功)、FAIL(失败)</td>
+                      <td>平台内部订单号</td>
                     </tr>
                     <tr>
                       <td>order_no</td>
                       <td>string</td>
-                      <td>平台订单号</td>
+                      <td>支付宝订单号</td>
                     </tr>
                     <tr>
                       <td>third_biz_no</td>
                       <td>string</td>
                       <td>商户订单号(发起转账时传入的三方订单号)</td>
                     </tr>
+                    <tr>
+                      <td>status</td>
+                      <td>string</td>
+                      <td>转账状态:SUCCESS(成功)、FAIL(失败)</td>
+                    </tr>
                     <tr>
                       <td>amount</td>
                       <td>number</td>
                       <td>转账金额(元)</td>
                     </tr>
                     <tr>
-                      <td>created_time</td>
+                      <td>order_title</td>
                       <td>string</td>
-                      <td>创建时间</td>
+                      <td>转账标题</td>
                     </tr>
                     <tr>
-                      <td>updated_time</td>
+                      <td>payee_type</td>
                       <td>string</td>
-                      <td>更新时间</td>
+                      <td>收款方类型</td>
+                    </tr>
+                    <tr>
+                      <td>fund_order_id</td>
+                      <td>string</td>
+                      <td>支付宝资金流水号</td>
                     </tr>
                   </tbody>
                 </table>
 
                 <h4>通知示例</h4>
-                成功示例
+                <p><strong>成功通知</strong></p>
                 <pre v-pre><code>POST /your/callback/url HTTP/1.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
-
-------WebKitFormBoundary
-Content-Disposition: form-data; name="notify_id"
-
-n1234567890123456789
-------WebKitFormBoundary
-Content-Disposition: form-data; name="timestamp"
+Content-Type: application/x-www-form-urlencoded
 
-1715767200000
-------WebKitFormBoundary
-Content-Disposition: form-data; name="content"
+notify_id=n1234567890123456789&timestamp=1715767200000&content=%7B%22out_biz_no%22%3A%222026042711122334455%22%2C%22order_no%22%3A%222026042711122334455%22%2C%22third_biz_no%22%3A%22%E5%95%86%E6%88%B7%E8%AE%A2%E5%8D%95%E5%8F%B7202604270001%22%2C%22status%22%3A%22SUCCESS%22%2C%22amount%22%3A100.00%2C%22order_title%22%3A%22%E8%BD%AC%E8%B4%A6%E6%A0%87%E9%A2%98%22%2C%22payee_type%22%3A%22ALIPAY_USER_ID%22%2C%22fund_order_id%22%3A%222026042711122334455%22%7D
 
+content 解码后:
 {
-  "status": "SUCCESS",
+  "out_biz_no": "2026042711122334455",
   "order_no": "2026042711122334455",
   "third_biz_no": "商户订单号202604270001",
-  "amount": "100.00",
-  "created_time": "2026-04-27 11:22:33",
-  "updated_time": "2026-04-27 11:25:45"
-}
-
-------WebKitFormBoundary--
-                转账成功示例
-POST /商户回调地址 HTTP/1.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
-
-------WebKitFormBoundary
-Content-Disposition: form-data; name="notify_id"
-
-n12535554089713704963
-------WebKitFormBoundary
-Content-Disposition: form-data; name="timestamp"
-
-1779037365774
-------WebKitFormBoundary
-Content-Disposition: form-data; name="content"
-
-{
   "status": "SUCCESS",
-  "order_no": "2026042711122334455",
-  "third_biz_no": "商户订单号202604270001",
-  "amount": "100.00",
-  "out_biz_no": "12535474352010076162",
-  "enterprise_id": "2088480767913636",
-  "account_book_id": "2088480770941200",
+  "amount": 100.00,
   "order_title": "转账标题",
-  "created_time": "2026-04-27 11:22:33"
-}
-------WebKitFormBoundary--
-
-                转账失败示例
-POST /your/callback/url HTTP/1.1
-Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
-
-------WebKitFormBoundary
-Content-Disposition: form-data; name="notify_id"
+  "payee_type": "ALIPAY_USER_ID",
+  "fund_order_id": "2026042711122334455"
+}</code></pre>
 
-n12535554089713704963
-------WebKitFormBoundary
-Content-Disposition: form-data; name="timestamp"
+                <p><strong>失败通知</strong></p>
+                <pre v-pre><code>POST /your/callback/url HTTP/1.1
+Content-Type: application/x-www-form-urlencoded
 
-1779037365774
-------WebKitFormBoundary
-Content-Disposition: form-data; name="content"
+notify_id=n12535554089713704963&timestamp=1779037365774&content=%7B%22status%22%3A%22FAIL%22%2C%22third_biz_no%22%3A%22%E5%95%86%E6%88%B7%E8%AE%A2%E5%8D%95%E5%8F%B7202604270001%22%2C%22amount%22%3A%221.00%22%2C%22error_msg%22%3A%22%E6%94%B6%E6%AC%BE%E8%B4%A6%E5%8F%B7%E4%B8%8D%E5%AD%98%E5%9C%A8%E6%88%96%E5%A7%93%E5%90%8D%E6%9C%89%E8%AF%AF%22%7D
 
+content 解码后:
 {
   "status": "FAIL",
   "third_biz_no": "商户订单号202604270001",
   "amount": "1.00",
   "error_msg": "收款账号不存在或姓名有误,建议核实账号和姓名是否准确"
-}
-------WebKitFormBoundary--
-------WebKitFormBoundary--
-</code></pre>
+}</code></pre>
 
                 <h4>响应要求</h4>
                 <p>
@@ -1365,6 +1367,7 @@ const configLoading = ref(true);
 const expandedSections = ref({
   payee_info: false,
   bankcard_ext_info: false,
+  ext_info: false,
 });
 
 const configExists = ref(false);

+ 1 - 1
java/src/main/java/com/payment/platform/module/payment/account/dto/TransferCreateDTO.java

@@ -46,7 +46,7 @@ public class TransferCreateDTO {
     @Schema(description = "优先级: HIGH/NORMAL/LOW")
     private String priority;
 
-    @Schema(description = "扩展信息")
+    @Schema(description = "扩展信息,支持: withdraw_timeliness (到账时效: T0当天/T1次日, 仅银行卡), transfer_scene_name, transfer_scene_report_infos")
     private Map<String, Object> extInfo;
 
     @Schema(description = "三方订单号(开放接口使用)")

+ 4 - 0
java/src/main/java/com/payment/platform/module/payment/account/entity/TransferEntity.java

@@ -1,8 +1,10 @@
 package com.payment.platform.module.payment.account.entity;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonRawValue;
 import com.payment.platform.common.base.PaymentEnterpriseBaseEntity;
+import com.payment.platform.common.handler.JsonbTypeHandler;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -21,12 +23,14 @@ public class TransferEntity extends PaymentEnterpriseBaseEntity {
     private String accountBookId;
     private BigDecimal amount;
     private String orderTitle;
+    @TableField(typeHandler = JsonbTypeHandler.class)
     private String payeeInfo;
     private String payeeType;
     private String orderNo;
     private String fundOrderId;
     private String errorCode;
     private String errorMsg;
+    @TableField(typeHandler = JsonbTypeHandler.class)
     private String extInfo;
     private String remark;
     private Integer retryCount = 0;

+ 7 - 88
java/src/main/java/com/payment/platform/module/payment/account/service/AlipayTransferService.java

@@ -40,7 +40,7 @@ import com.alipay.api.response.AlipayFundExpandindirectOrderQueryResponse;
 import com.alipay.api.response.AlipayUserAgreementQueryResponse;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.payment.platform.common.exception.BusinessException;
-import com.payment.platform.common.utils.RedisLockUtil;
+
 import com.payment.platform.common.utils.SnowflakeIdGenerator;
 import com.payment.platform.core.alipay.AlipayClientFactory;
 import com.payment.platform.module.payment.account.dto.TransferCreateDTO;
@@ -81,7 +81,6 @@ public class AlipayTransferService {
     private final WithdrawMapper withdrawMapper;
     private final EnterpriseMapper enterpriseMapper;
     private final ObjectMapper objectMapper;
-    private final RedisLockUtil redisLockUtil;
 
     @org.springframework.beans.factory.annotation.Autowired
     @org.springframework.context.annotation.Lazy
@@ -591,11 +590,15 @@ public class AlipayTransferService {
             sceneReportInfos.add(info);
             model.setTransferSceneReportInfos(sceneReportInfos);
 
-            // 选填: 转账场景信息(通过 businessParams JSON 透传)
-            if (extInfo != null && (extInfo.containsKey("transfer_scene_name")
+            // 选填: businessParams(扩展参数透传给支付宝)
+            // 支持: withdraw_timeliness(T0/T1)、transfer_scene_name、transfer_scene_report_infos
+            if (extInfo != null && (extInfo.containsKey("withdraw_timeliness")
+                    || extInfo.containsKey("transfer_scene_name")
                     || extInfo.containsKey("transfer_scene_report_infos"))) {
                 try {
                     Map<String, Object> bizParams = new LinkedHashMap<>();
+                    if (extInfo.containsKey("withdraw_timeliness"))
+                        bizParams.put("withdraw_timeliness", extInfo.get("withdraw_timeliness"));
                     if (extInfo.containsKey("transfer_scene_name"))
                         bizParams.put("transfer_scene_name", extInfo.get("transfer_scene_name"));
                     if (extInfo.containsKey("transfer_scene_report_infos"))
@@ -848,90 +851,6 @@ public class AlipayTransferService {
         transferMapper.insert(transfer);
     }
 
-    // ==================== 反查重试定时任务 ====================
-
-    private static final int[] RETRY_INTERVALS = {5, 10, 45, 60};
-    private static final String RETRY_LOCK_KEY = "retry:dealing_transfers";
-    private static final long RETRY_LOCK_TTL = 120;
-
-    @org.springframework.scheduling.annotation.Scheduled(fixedDelay = 60_000, initialDelay = 5_000)
-    public void retryDealingTransfers() {
-        String lockValue = redisLockUtil.lock(RETRY_LOCK_KEY, RETRY_LOCK_TTL);
-        if (lockValue == null) { log.debug("[重试任务] 上一轮尚未完成,跳过"); return; }
-        try {
-            int scanned = 0, processed = 0;
-            var now = OffsetDateTime.now();
-            var dealingList = transferMapper.selectList(
-                    new com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<TransferEntity>()
-                            .eq(TransferEntity::getStatus, "DEALING")
-                            .lt(TransferEntity::getRetryCount, 4)
-                            .isNotNull(TransferEntity::getNextRetryAt)
-                            .le(TransferEntity::getNextRetryAt, now)
-                            .orderByAsc(TransferEntity::getNextRetryAt));
-
-            if (dealingList.isEmpty()) return;
-            scanned = dealingList.size();
-            log.info("[重试任务] 扫描到 {} 条待反查记录", scanned);
-
-            for (TransferEntity transfer : dealingList) {
-                String outBizNo = transfer.getOutBizNo();
-                String orderNo = transfer.getOrderNo() != null ? transfer.getOrderNo() : "";
-                int retryCount = transfer.getRetryCount() != null ? transfer.getRetryCount() : 0;
-
-                try {
-                    Map<String, String> status = queryTransferStatus(
-                            !orderNo.isEmpty() ? orderNo : null, outBizNo,
-                            transfer.getEnterpriseId());
-                    String s = status.get("status");
-                    if ("SUCCESS".equals(s) || "FAIL".equals(s) || "REFUND".equals(s)) {
-                        TransferEntity patch = new TransferEntity();
-                        patch.setId(transfer.getId());
-                        patch.setStatus(s);
-                        patch.setRetryCount(4);
-                        patch.setNextRetryAt(null);
-                        transferMapper.updateById(patch);
-                        log.info("[重试任务] out_biz_no={}, retry={}/4, result={}", outBizNo, retryCount + 1, s);
-                        processed++;
-                        try {
-                            openapiService.notifyTransferResult(
-                                    !orderNo.isEmpty() ? orderNo : outBizNo, outBizNo, transfer.getTenantId());
-                        } catch (Exception ignored) {}
-                    } else {
-                        boolean isCardTransfer = "BANK_CARD".equals(transfer.getPayeeType());
-                        int maxRetries = isCardTransfer ? 3 : 0;
-                        if (retryCount < maxRetries) {
-                            int accumulated = 0;
-                            for (int i = 0; i <= retryCount && i < RETRY_INTERVALS.length; i++)
-                                accumulated += RETRY_INTERVALS[i];
-                            transfer.setRetryCount(retryCount + 1);
-                            transfer.setNextRetryAt(transfer.getCreatedTime() != null
-                                    ? transfer.getCreatedTime().plusMinutes(accumulated)
-                                    : OffsetDateTime.now().plusMinutes(accumulated));
-                        } else {
-                            transfer.setStatus("FAIL");
-                            transfer.setRetryCount(4);
-                            transfer.setNextRetryAt(null);
-                            transfer.setErrorMsg(isCardTransfer ? "反查超时判定为失败" : "仅重试1次仍DEALING");
-                            try {
-                                openapiService.notifyTransferResult(
-                                        !orderNo.isEmpty() ? orderNo : outBizNo, outBizNo, transfer.getTenantId());
-                            } catch (Exception ignored) {}
-                        }
-                        transferMapper.updateById(transfer);
-                        processed++;
-                    }
-                } catch (Exception e) {
-                    log.warn("[重试任务] 查询异常: out_biz_no={}, err={}", outBizNo, e.getMessage());
-                }
-            }
-            log.info("[重试任务] 完成: {} 处理/{} 扫描", processed, scanned);
-        } catch (Exception e) {
-            log.error("[重试任务] 执行异常", e);
-        } finally {
-            redisLockUtil.unlock(RETRY_LOCK_KEY, lockValue);
-        }
-    }
-
     /** 全量同步 — alipay.fund.trans.common.query */
     @Transactional
     public Map<String, Object> transferSyncAllService() {

+ 2 - 1
java/src/main/java/com/payment/platform/module/payment/openapi/service/OpenapiService.java

@@ -194,7 +194,8 @@ public class OpenapiService {
         result.put("status", transfer.getStatus());
         result.put("amount", transfer.getAmount());
         result.put("order_title", transfer.getOrderTitle());
-        result.put("payee_info", transfer.getPayeeInfo());
+        // payee_info 存储为 JSON 字符串,需解析为对象再返回,避免序列化时被双重转义
+        result.put("payee_info", JSONUtil.parseObj(transfer.getPayeeInfo()));
         result.put("payee_type", transfer.getPayeeType());
         result.put("fund_order_id", transfer.getFundOrderId());
         result.put("remark", transfer.getRemark());