|
|
|
@ -0,0 +1,190 @@
|
|
|
|
|
package au.com.royalpay.payment.manage.dev.core;
|
|
|
|
|
|
|
|
|
|
import au.com.royalpay.payment.channels.alipay.runtime.AlipayOnlineApi;
|
|
|
|
|
import au.com.royalpay.payment.channels.alipay.runtime.AlipayRetailApi;
|
|
|
|
|
import au.com.royalpay.payment.core.beans.EmptyMerchantApplication;
|
|
|
|
|
import au.com.royalpay.payment.core.impls.MerchantChannelApplicationManager;
|
|
|
|
|
import au.com.royalpay.payment.manage.mappers.system.ClientMapper;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
import org.apache.http.util.TextUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
import java.util.Iterator;
|
|
|
|
|
|
|
|
|
|
@Service
|
|
|
|
|
public class AlipayRegisterService {
|
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(getClass());
|
|
|
|
|
@Resource
|
|
|
|
|
private MerchantChannelApplicationManager merchantChannelApplicationManager;
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
private ClientMapper clientMapper;
|
|
|
|
|
|
|
|
|
|
public void batchUpdateAlipayApply() {
|
|
|
|
|
logger.info("=======>batchUpdateAlipayApply=开始批量更新支付宝");
|
|
|
|
|
String[] alipayonlines = new String[]{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
HashMap sb = new HashMap();
|
|
|
|
|
HashMap sb2 = new HashMap();
|
|
|
|
|
HashMap sb_failure = new HashMap();
|
|
|
|
|
HashMap sb_failure2 = new HashMap();
|
|
|
|
|
StringBuilder fail_reason = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
fail_reason.append("线上===========\n");
|
|
|
|
|
Arrays.stream(alipayonlines).forEach(
|
|
|
|
|
clientMoniker -> {
|
|
|
|
|
JSONObject client = clientMapper.findClientByMoniker(clientMoniker);
|
|
|
|
|
if (client == null) {
|
|
|
|
|
logger.info("======>alipayonline:" + clientMoniker + ":client为空");
|
|
|
|
|
|
|
|
|
|
sb_failure.put(clientMoniker, clientMoniker);
|
|
|
|
|
fail_reason.append(clientMoniker + ":商户已失效,");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (TextUtils.isEmpty(client.getString("acn"))) {
|
|
|
|
|
client.put("acn", null);
|
|
|
|
|
}
|
|
|
|
|
logger.info("======>alipayonline:" + clientMoniker);
|
|
|
|
|
if (!client.containsKey("company_website") || TextUtils.isEmpty(client.getString("company_website"))) {
|
|
|
|
|
client.put("company_website", "https://www.royalpay.com.au/");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isBlank(client.getString("business_structure"))) {
|
|
|
|
|
client.put("business_structure", "Registered body(Sole Trader)");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isBlank(client.getString("alipayindustry"))) {
|
|
|
|
|
logger.info("======>alipayonline:" + clientMoniker + ":alipayindustry为空,给默认值5311");
|
|
|
|
|
client.put("alipayindustry", "5311");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
merchantChannelApplicationManager.getRegister(AlipayOnlineApi.class).apply(client, new EmptyMerchantApplication(), null);
|
|
|
|
|
logger.info("======>alipayindustry:register:" + clientMoniker);
|
|
|
|
|
sb.put(clientMoniker, clientMoniker);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.info("======>alipayindustry:register2:" + clientMoniker);
|
|
|
|
|
if ("DUPLICATE_REQUEST".equalsIgnoreCase(e.getMessage())) {
|
|
|
|
|
sb.put(clientMoniker, clientMoniker);
|
|
|
|
|
} else {
|
|
|
|
|
sb_failure.put(clientMoniker, clientMoniker);
|
|
|
|
|
fail_reason.append(clientMoniker + ":" + e.getMessage() + ",");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
Thread.sleep(500);
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
String[] alipayRetails = new String[]{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
fail_reason.append("线下===========\n");
|
|
|
|
|
|
|
|
|
|
Arrays.stream(alipayRetails).forEach(
|
|
|
|
|
|
|
|
|
|
clientMoniker -> {
|
|
|
|
|
JSONObject client = clientMapper.findClientByMoniker(clientMoniker);
|
|
|
|
|
if (client == null) {
|
|
|
|
|
logger.info("======>alipayRetail:" + clientMoniker + ":client为空");
|
|
|
|
|
sb_failure2.put(clientMoniker, clientMoniker);
|
|
|
|
|
fail_reason.append(clientMoniker + ":商户已失效,");
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (TextUtils.isEmpty(client.getString("acn"))) {
|
|
|
|
|
client.put("acn", null);
|
|
|
|
|
}
|
|
|
|
|
logger.info("======>alipayRetail:" + clientMoniker);
|
|
|
|
|
if (!client.containsKey("store_photo") || !client.containsKey("company_photo")) {
|
|
|
|
|
sb_failure2.put(clientMoniker, clientMoniker);
|
|
|
|
|
fail_reason.append(clientMoniker + ":store_photo和company_photo为空,");
|
|
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isBlank(client.getString("business_structure"))) {
|
|
|
|
|
client.put("business_structure", "Registered body(Sole Trader)");
|
|
|
|
|
}
|
|
|
|
|
if (StringUtils.isBlank(client.getString("alipayindustry"))) {
|
|
|
|
|
logger.info("======>alipayRetail:" + clientMoniker + ":alipayindustry为空,给默认值5311");
|
|
|
|
|
client.put("alipayindustry", "5311");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
merchantChannelApplicationManager.getRegister(AlipayRetailApi.class).apply(client, new EmptyMerchantApplication(), null);
|
|
|
|
|
logger.info("======>alipayRetail:register:" + clientMoniker);
|
|
|
|
|
sb2.put(clientMoniker, clientMoniker);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
System.out.println("====>Exception:" + e.getMessage());
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
logger.info("======>alipayRetail:register2:" + clientMoniker);
|
|
|
|
|
|
|
|
|
|
if ("DUPLICATE_REQUEST".equalsIgnoreCase(e.getMessage())) {
|
|
|
|
|
sb.put(clientMoniker, clientMoniker);
|
|
|
|
|
} else {
|
|
|
|
|
sb_failure2.put(clientMoniker, clientMoniker);
|
|
|
|
|
fail_reason.append(clientMoniker + ":" + e.getMessage() + ",");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
Thread.sleep(500);
|
|
|
|
|
} catch (InterruptedException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
);
|
|
|
|
|
// logger.info("======>as:" + sb.toString());
|
|
|
|
|
// logger.info("======>sb_failure:" + sb_failure.toString());
|
|
|
|
|
// logger.info("======>as2:" + sb2.toString());
|
|
|
|
|
// logger.info("======>sb_failure2:" + sb_failure2.toString());
|
|
|
|
|
|
|
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
|
|
StringBuilder stringBuilder2 = new StringBuilder();
|
|
|
|
|
Iterator iterator = sb.keySet().iterator();
|
|
|
|
|
|
|
|
|
|
while (iterator.hasNext()) {
|
|
|
|
|
stringBuilder.append(iterator.next() + ",");
|
|
|
|
|
}
|
|
|
|
|
Iterator iterator2 = sb2.keySet().iterator();
|
|
|
|
|
|
|
|
|
|
while (iterator2.hasNext()) {
|
|
|
|
|
stringBuilder2.append(iterator2.next() + ",");
|
|
|
|
|
}
|
|
|
|
|
StringBuilder stringBuilderFail = new StringBuilder();
|
|
|
|
|
StringBuilder stringBuilderFail2 = new StringBuilder();
|
|
|
|
|
Iterator iterator_fail = sb_failure.keySet().iterator();
|
|
|
|
|
|
|
|
|
|
while (iterator_fail.hasNext()) {
|
|
|
|
|
stringBuilderFail.append(iterator_fail.next() + ",");
|
|
|
|
|
}
|
|
|
|
|
Iterator iterator_fail2 = sb_failure2.keySet().iterator();
|
|
|
|
|
|
|
|
|
|
while (iterator_fail2.hasNext()) {
|
|
|
|
|
stringBuilderFail2.append(iterator_fail2.next() + ",");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logger.info("======>stringBuilder:" + stringBuilder.toString());
|
|
|
|
|
logger.info("======>stringBuilder2:" + stringBuilder2.toString());
|
|
|
|
|
logger.info("======>stringBuilderFail:" + stringBuilderFail.toString());
|
|
|
|
|
logger.info("======>stringBuilderFail2:" + stringBuilderFail2.toString());
|
|
|
|
|
logger.info("======>fail_reason:" + fail_reason.toString());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|