package com.talentcard.server.business.merchant;
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import org.junit.jupiter.api.Test;
|
|
/**
|
* 个人(小微)主体的 MCC 取的是**商户在进件表单里选的行业**。
|
*
|
* <p>进件第一步让个人商户选「行业类型」(餐饮服务/酒店服务/景区服务/加油服务/停车服务/其它),
|
* 它跟着企业主体的公司类型一起落在 {@code company_type} 列上。原先上报汇付的 {@code mcc}
|
* 只认商家档案上的经营类型,等于把这一项**静默丢掉**:档案没配好就一律落 7399(其它),
|
* 通道侧的微信行业类目和费率跟着一起错,而商户页面上明明选过行业。
|
*
|
* <p>「其它」与识别不出来的取值返回空串,交给商家档案兜底——不要在这里拍一个 7399,
|
* 那会把「档案里配了准确行业」的商户也降级成「其它」。
|
*/
|
class MerchantOnboardingIndustryMccTests {
|
|
@Test
|
void theIndustryPickedOnTheFormBecomesTheMcc() {
|
assertThat(MerchantSettlementService.mccForIndustry("餐饮服务")).isEqualTo("5812");
|
assertThat(MerchantSettlementService.mccForIndustry("酒店服务")).isEqualTo("7011");
|
assertThat(MerchantSettlementService.mccForIndustry("景区服务")).isEqualTo("7991");
|
assertThat(MerchantSettlementService.mccForIndustry("加油服务")).isEqualTo("5541");
|
assertThat(MerchantSettlementService.mccForIndustry("停车服务")).isEqualTo("7523");
|
}
|
|
/** 别名与规范化代码同样认,商户端换过文案不影响映射。 */
|
@Test
|
void theIndustryIsResolvedThroughTheSharedCatalog() {
|
assertThat(MerchantSettlementService.mccForIndustry("餐饮")).isEqualTo("5812");
|
assertThat(MerchantSettlementService.mccForIndustry("food")).isEqualTo("5812");
|
assertThat(MerchantSettlementService.mccForIndustry("餐饮商家")).isEqualTo("5812");
|
assertThat(MerchantSettlementService.mccForIndustry(" theatre ")).isEqualTo("7832");
|
}
|
|
@Test
|
void anUnrecognisedIndustryFallsBackToTheMerchantProfile() {
|
assertThat(MerchantSettlementService.mccForIndustry("其它")).isEmpty();
|
assertThat(MerchantSettlementService.mccForIndustry("街边小店")).isEmpty();
|
assertThat(MerchantSettlementService.mccForIndustry("")).isEmpty();
|
assertThat(MerchantSettlementService.mccForIndustry(null)).isEmpty();
|
}
|
}
|