| | |
| | | |
| | | public Map<String,Object> view(Long id) { return view(application(id)); } |
| | | |
| | | /** 进件来源标记:后台纳管进来的外部进件商户。取值与 V157 的 {@code source} 列一致。 */ |
| | | public static final String SOURCE_MANAGED = "managed"; |
| | | |
| | | /** |
| | | * 这条进件是不是「后台纳管的外部进件」。 |
| | | * |
| | | * <p>它决定这条进件能不能**下发**通道改动:纳管全程只查询、不下发(外部商户的口径已由业务要求 |
| | | * 保持一致,只需核实;而补开微信、绑人才端、改支付场景、开启延迟入账这些下发操作都不幂等, |
| | | * 连锁多店共用同一个汇付商户号时各自下发还会重复下发)。判定只留这一处定义,刷新链路与纳管/解绑 |
| | | * 都读它,避免同一个来源标记在几处各自比较字符串。 |
| | | */ |
| | | public static boolean isManaged(Map<String,Object> application) { |
| | | return SOURCE_MANAGED.equals(text(application.get("source")).trim()); |
| | | } |
| | | |
| | | @org.springframework.transaction.annotation.Transactional(propagation = org.springframework.transaction.annotation.Propagation.NOT_SUPPORTED) |
| | | public Map<String,Object> refresh(Long applicationId, boolean retry) { |
| | | Map<String,Object> application=application(applicationId); |
| | |
| | | if (!"confirmed".equals(stages.get("realname"))) stages.put("realname", "missing"); |
| | | } else jdbc.update("update merchant_onboarding_progress set sync_error=? where application_id=? and sync_owner=?",queryError(realname),applicationId,owner); |
| | | } |
| | | if ("Y".equals(audit) && "S".equals(text(response.get("reg_status"))) && capabilities != null |
| | | if (!isManaged(application) && "Y".equals(audit) && "S".equals(text(response.get("reg_status"))) && capabilities != null |
| | | && "00000000".equals(text(capabilities.get("resp_code"))) && "NORMAL".equals(text(capabilities.get("mer_stat"))) |
| | | && capabilities.containsKey("delay_flag") && capabilities.containsKey("forced_delay_flag")) { |
| | | advanceDelay(applicationId,text(application.get("providerHuifuId")),owner,stages,retry); |