调试支付接口
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/agent/service/impl/QrcodePatternServiceImpl.java b/payapi/src/main/java/com/supwisdom/dlpay/agent/service/impl/QrcodePatternServiceImpl.java
index 4da560f..c14ee51 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/agent/service/impl/QrcodePatternServiceImpl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/agent/service/impl/QrcodePatternServiceImpl.java
@@ -13,36 +13,36 @@
@Service
public class QrcodePatternServiceImpl implements QrcodePatternService {
- private final QrcodePatternDao qrcodePatternDao;
+ private final QrcodePatternDao qrcodePatternDao;
- public QrcodePatternServiceImpl(QrcodePatternDao qrcodePatternDao) {
- this.qrcodePatternDao = qrcodePatternDao;
- }
-
- @Override
- @Cacheable(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern')")
- public List<QrcodePattern> getAllQrcodePattern() {
- return qrcodePatternDao.findByTenantid(TenantContext.getTenantSchema());
- }
-
- @Override
- @CacheEvict(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern') + '.*'")
- public void deleteAllQrcodePattern() {
- qrcodePatternDao.deleteByTenantid(TenantContext.getTenantSchema());
- }
-
- @Override
- @CacheEvict(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern') + '.*'")
- public QrcodePattern saveOrUpdateQrcodePattern(@NotNull QrcodePattern pattern) {
- if (pattern.getTenantid() == null || pattern.getTenantid().isEmpty()) {
- pattern.setTenantid(TenantContext.getTenantSchema());
+ public QrcodePatternServiceImpl(QrcodePatternDao qrcodePatternDao) {
+ this.qrcodePatternDao = qrcodePatternDao;
}
- return qrcodePatternDao.save(pattern);
- }
- @Override
- @Cacheable(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern', #sourceType)")
- public List<QrcodePattern> findAllBySourcetype(String sourceType) {
- return qrcodePatternDao.findBySourceTypeAndTenantid(sourceType, TenantContext.getTenantSchema());
- }
+ @Override
+ @Cacheable(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern')")
+ public List<QrcodePattern> getAllQrcodePattern() {
+ return qrcodePatternDao.findByTenantid(TenantContext.getTenantSchema());
+ }
+
+ @Override
+ @CacheEvict(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern') + '.*'", allEntries = true)
+ public void deleteAllQrcodePattern() {
+ qrcodePatternDao.deleteByTenantid(TenantContext.getTenantSchema());
+ }
+
+ @Override
+ @CacheEvict(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern') + '.*'", allEntries = true)
+ public QrcodePattern saveOrUpdateQrcodePattern(@NotNull QrcodePattern pattern) {
+ if (pattern.getTenantid() == null || pattern.getTenantid().isEmpty()) {
+ pattern.setTenantid(TenantContext.getTenantSchema());
+ }
+ return qrcodePatternDao.save(pattern);
+ }
+
+ @Override
+ @Cacheable(cacheNames = "qrcode_pattern_cache", key = "@tenantHolder.genKey('qrcode_pattern', #sourceType)")
+ public List<QrcodePattern> findAllBySourcetype(String sourceType) {
+ return qrcodePatternDao.findBySourceTypeAndTenantid(sourceType, TenantContext.getTenantSchema());
+ }
}
diff --git a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
index a4767f2..c961f32 100644
--- a/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
+++ b/payapi/src/main/java/com/supwisdom/dlpay/api/domain/TPersondtl.java
@@ -23,7 +23,6 @@
private String accdate; //记账日期
@Column(name = "USERID", length = 32)
- @NotNull
private String userid; //用户ID,或账号
@Column(name = "ACCNO", length = 32)
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
index cc19440..ccae15f 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/alipay_service_impl.kt
@@ -66,24 +66,27 @@
val response = alipayClient.execute(request)
if ("10000" == response.code) {
if (response.isSuccess) {
- agentResponse.agentRefno = response.tradeNo
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentRefno = response.tradeNo
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
+ qrcodePayTrans.agentRefno = response.tradeNo
+ agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodePayTrans)
} else {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = response.subMsg
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
logger.error { "支付宝:${response.code},${response.msg},${response.subCode},${response.subMsg}" }
}
} else if ("10003" == response.code || "20000" == response.code) {
agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentMsg = "支付请求已提交,等待用户支付"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
logger.error { "支付宝:${response.code},${response.msg},${response.subCode},${response.subMsg}" }
} else {
agentResponse.code = AgentCode.FAIL
agentResponse.agentMsg = response.msg
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
+ agentResponse.agentCode = response.code
logger.error { "支付宝:${response.code},${response.msg},${response.subCode},${response.subMsg}" }
}
} catch (e: AlipayApiException) {
@@ -132,21 +135,19 @@
val response = alipayClient.sdkExecute(request)
if (response.isSuccess) {
agentResponse.agentRefno = response.tradeNo
- agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
//body 为APP
agentResponse.agentBody = response.body
} else {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = response.subMsg
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
logger.error { "支付宝:${response.code},${response.msg},${response.subCode},${response.subMsg}" }
}
} catch (e: AlipayApiException) {
logger.error { "支付宝:${e.message}" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentMsg = "调用支付宝异常"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
}
}
return agentResponse
@@ -169,12 +170,13 @@
val response = alipayClient.execute(request)
if (response.isSuccess) {
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
agentResponse.dtlStatus = DtlStatus.REFUND
} else {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "支付宝退款失败"
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
}
}
return agentResponse
@@ -197,7 +199,8 @@
if (response.isSuccess) {
//check response.totalAmount
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
when (response.tradeStatus) {
"TRADE_SUCCESS", "TRADE_FINISHED" -> agentResponse.dtlStatus = DtlStatus.SUCCESS
"TRADE_CLOSED" -> agentResponse.dtlStatus = DtlStatus.REFUND
@@ -205,8 +208,8 @@
}
} else {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "支付宝查询失败"
+ agentResponse.agentMsg = response.msg
+ agentResponse.agentCode = response.code
}
}
return agentResponse
@@ -217,27 +220,20 @@
var agentResponse = AgentResponse()
if (refno.isNullOrEmpty()) {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentMsg = "返回流水号为空"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
return agentResponse
}
var transaction = consumePayService.getTransactionMainDtl(refno, null, null)
if (transaction == null) {
agentResponse.code = AgentCode.REFNO_NOT_EXISTS
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
return agentResponse
}
if (transaction.status == TradeDict.DTL_STATUS_SUCCESS) {
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentMsg = "流水已成功,不能重复入账"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
return agentResponse
}
val config = sourceTypeService.getConsumePaytypeConfig(TradeDict.PAYTYPE_ALIPAY, transaction.shopDtl.shopaccno, false, false)
if (config[PaytypeUtil.CFG_ALIPAY_PUBLICKEY].isNullOrEmpty()) {
agentResponse.code = AgentCode.CONFIG_ERROR
- agentResponse.agentMsg = "商户公钥未配置"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
return agentResponse
}
var flag = AlipaySignature.rsaCheckV1(param, config[PaytypeUtil.CFG_ALIPAY_PUBLICKEY], "UTF-8", "RSA2")
@@ -245,20 +241,17 @@
true -> {
//total amt 校验 map["total_amount"]
var tradeno = param["trade_no"]
- if(tradeno.isNullOrEmpty()){
+ if (tradeno.isNullOrEmpty()) {
transactionService.success(transaction.refno)
- }else{
- transactionService.success(transaction.refno,tradeno, true)
+ } else {
+ transactionService.success(transaction.refno, tradeno, true)
}
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
agentResponse
}
false -> {
logger.error { "支付宝签名校验错误" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentMsg = "签名校验错误"
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
agentResponse
}
}
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
index 94cd031..1f3b6d1 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/impl/wechat_service_impl.kt
@@ -16,8 +16,10 @@
import com.supwisdom.dlpay.util.PaytypeUtil
import mu.KotlinLogging
import org.apache.commons.lang.StringUtils
+import org.springframework.http.converter.StringHttpMessageConverter
import org.springframework.stereotype.Service
import org.springframework.web.client.RestTemplate
+import java.nio.charset.StandardCharsets
@Service
@@ -61,6 +63,7 @@
}
bean.generalCheckSign()
var xml = bean.generalCheckXML()
+ restTemplate.messageConverters[1] = StringHttpMessageConverter(StandardCharsets.UTF_8)
var res = restTemplate.postForEntity(PaytypeUtil.CFG_WECHAT_OAUTHCODE, xml, String::class.java)
var eleMap = XmlUtils.parseXml(res.body)
var retcode = eleMap["return_code"]
@@ -71,16 +74,17 @@
qrcodeTrans.agentUserId = openid
var ip = personIdentityDao.getByThirdUid(openid)
if (ip != null) {
- qrcodeTrans.agentUserId = ip.person.userid
+ qrcodeTrans.userid = ip.person.userid
}
agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodeTrans)
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentCode = retcode
+ agentResponse.agentMsg = eleMap["return_msg"]
} else {
logger.error { "code=${eleMap["err_code"]},des=${eleMap["err_code_des"]}" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "二维码身份查询失败"
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
}
}
return agentResponse
@@ -104,25 +108,40 @@
this.out_trade_no = transaction.refno
this.total_fee = MoneyUtil.YuanToFen(transaction.shopDtl.amount)
this.spbill_create_ip = qrcodeTrans.spip
+ this.body = "POS扫微信二维码支付"
}
bean.generalPaySign()
var xml = bean.generaPayXML()
+ restTemplate.messageConverters[1] = StringHttpMessageConverter(StandardCharsets.UTF_8)
var res = restTemplate.postForEntity(PaytypeUtil.CFG_WECHAT_QRCODEPAY, xml, String::class.java)
var eleMap = XmlUtils.parseXml(res.body)
var retcode = eleMap["return_code"]
var resultCode = eleMap["result_code"]
var openid = eleMap["openid"]
+ var errorCode = eleMap["err_code"]
if (!retcode.isNullOrEmpty() && "SUCCESS" == retcode
&& !resultCode.isNullOrEmpty() && "SUCCESS" == resultCode && !openid.isNullOrEmpty()) {
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentCode = resultCode
agentResponse.dtlStatus = DtlStatus.SUCCESS
- } else {
- logger.error { "code=${eleMap["err_code"]},des=${eleMap["err_code_des"]}" }
+ agentResponse.agentMsg = eleMap["return_msg"]
+ agentResponse.agentRefno = eleMap["transaction_id"]
+ qrcodeTrans.agentRefno = eleMap["transaction_id"]
+ agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodeTrans)
+ } else if("SYSTEMERROR"==errorCode||"BANKERROR"==errorCode||"USERPAYING"==errorCode){
+ logger.error { "code=${errorCode},des=${eleMap["err_code_des"]}" }
agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "请查询支付结果"
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
+ agentResponse.agentRefno = eleMap["transaction_id"]
+ qrcodeTrans.agentRefno = eleMap["transaction_id"]
+ agentServiceProxy.qrcodePayTransSaveOrUpdate(qrcodeTrans)
+ }else{
+ agentResponse.code = AgentCode.FAIL
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
+ logger.error { "code=${errorCode},des=${eleMap["err_code_des"]}" }
}
}
return agentResponse
@@ -148,22 +167,24 @@
//TODO IP 问题
bean.generaSign()
val xml = bean.generaXML()
+ restTemplate.messageConverters[1] = StringHttpMessageConverter(StandardCharsets.UTF_8)
var res = restTemplate.postForEntity(PaytypeUtil.CFG_WECHAT_UNIONPAY, xml, String::class.java)
var eleMap = XmlUtils.parseXml(res.body)
var retcode = eleMap["return_code"]
var resultCode = eleMap["result_code"]
- val mweb_url = eleMap["mweb_url"]
+ val mwebUrl = eleMap["mweb_url"]
if (!retcode.isNullOrEmpty() && "SUCCESS" == retcode
- && !resultCode.isNullOrEmpty() && "SUCCESS" == resultCode && !mweb_url.isNullOrEmpty()) {
+ && !resultCode.isNullOrEmpty() && "SUCCESS" == resultCode && !mwebUrl.isNullOrEmpty()) {
agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
- agentResponse.agentBody = mweb_url
+ agentResponse.agentCode =resultCode
+ agentResponse.agentMsg = eleMap["return_msg"]
+ agentResponse.agentBody = mwebUrl
agentResponse.agentRefno = eleMap["prepay_id"]
} else {
logger.error { "code=${eleMap["err_code"]},des=${eleMap["err_code_des"]}" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "预下单失败"
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
}
}
return agentResponse
@@ -182,26 +203,28 @@
}
bean.generalQuerySign()
val xml = bean.generalQueryXML()
+ restTemplate.messageConverters[1] = StringHttpMessageConverter(StandardCharsets.UTF_8)
var res = restTemplate.postForEntity(PaytypeUtil.CFG_WECHAT_QUERY, xml, String::class.java)
var eleMap = XmlUtils.parseXml(res.body)
var retcode = eleMap["return_code"]
var resultCode = eleMap["result_code"]
- val trade_state = eleMap["trade_state"]
+ val tradeState = eleMap["trade_state"]
if (!retcode.isNullOrEmpty() && "SUCCESS" == retcode
&& !resultCode.isNullOrEmpty() && "SUCCESS" == resultCode) {
agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
- when (trade_state) {
+ agentResponse.agentCode = resultCode
+ agentResponse.agentMsg = eleMap["return_msg"]
+ when (tradeState) {
"SUCCESS" -> agentResponse.dtlStatus = DtlStatus.SUCCESS
"REFUND" -> agentResponse.dtlStatus = DtlStatus.REFUND
"NOTPAY", "CLOSED", "REVOKED", "PAYERROR" -> agentResponse.dtlStatus = DtlStatus.FAIL
"USERPAYING" -> agentResponse.dtlStatus = DtlStatus.WAIT
}
} else {
- logger.error { "code=${eleMap["err_code"]},des=${eleMap["err_code_des"]}" }
+ logger.error { "code=${eleMap["err_code"]}},des=${eleMap["err_code_des"]}" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "查询失败"
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
}
}
return agentResponse
@@ -230,13 +253,14 @@
if (!retcode.isNullOrEmpty() && "SUCCESS" == retcode
&& !resultCode.isNullOrEmpty() && "SUCCESS" == resultCode ) {
agentResponse.code = AgentCode.REQUIRE_QUERY
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentCode =resultCode
agentResponse.agentRefno = eleMap["refund_id"]
+ agentResponse.agentMsg = eleMap["return_msg"]
} else {
logger.error { "code=${eleMap["err_code"]},des=${eleMap["err_code_des"]}" }
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "退款申请失败失败:${eleMap["err_code_des"]}"
+ agentResponse.agentCode = eleMap["err_code"]
+ agentResponse.agentMsg = eleMap["err_code_des"]
}
}
return agentResponse
@@ -287,11 +311,11 @@
transactionService.success(transaction.refno,transid, true)
}
agentResponse.code = AgentCode.SUCCESS
- agentResponse.agentCode = AgentResponse.AGENTCODE_SUCCESS
+ agentResponse.agentCode = resultCode
} else {
agentResponse.code = AgentCode.FAIL
- agentResponse.agentCode = AgentResponse.AGENTCODE_FAIL
- agentResponse.agentMsg = "${param["err_code"]}:${param["err_code_des"]}"
+ agentResponse.agentCode = param["err_code"]
+ agentResponse.agentMsg = param["err_code_des"]
logger.error { "code=${param["err_code"]},des=${param["err_code_des"]}" }
}
return agentResponse
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/wechat_service.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/wechat_service.kt
index 8de5cfe..f07cf84 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/wechat_service.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/agent/service/wechat_service.kt
@@ -29,7 +29,7 @@
fun downloadBill(shopacc:String,accdate:String):BaseResp
}
-@Component("wechatpayAgent")
+@Component("wechatAgent")
class WeChatPayAgentService(val consumePayService: ConsumePayService,
val wechatService: WechatService) : AgentPayService {
override fun auth(shopaccno: String?, billno: String?): AgentResponse {
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
index 4e3c906..ecc5f3b 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/advices.kt
@@ -118,7 +118,7 @@
fun logPostMethods(joinPoint: ProceedingJoinPoint, body: Any): Any {
return try {
if (body is APIRequestParam) {
- TenantContext.setTenantSchema(body.tenantid)
+ //TenantContext.setTenantSchema(body.tenantid)
body.checkParam()
if (requestSignCheck &&
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
index e47701b..483efd1 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/controller/consume_api_controller.kt
@@ -532,7 +532,7 @@
val qrcodeTrans = agentServiceProxy.qrcodePayTransFindByMerchIdAndBillno(param.shopaccno,
param.billno) ?: return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(apiResponse, TradeErrorCode.BUSINESS_DEAL_ERROR, "未找到billno"))
- if (qrcodeTrans.refno.isNotEmpty()) {
+ if (!qrcodeTrans.refno.isNullOrEmpty()) {
return ResponseEntity.ok(ResponseBodyBuilder.create()
.fail(apiResponse, TradeErrorCode.BUSINESS_DEAL_ERROR, "该交易已确认,请查询结果"))
}
@@ -558,7 +558,7 @@
"支付方式<${qrcodeTrans.sourceType}>不支持匿名支付"))
}
qrcodeTrans.spip = param.spip
-
+ val dtlType = consumePayService.getDtltypeDictionary(param.dtltype, Dictionary.DTLTYPES)
//2. 初始化交易流水
// sourcetype 资产类科目
val stSubject = accountUtilServcie.readSubject(sourceType.paySubjno)
@@ -567,6 +567,8 @@
setTransInfo(param.transdate, param.transtime, TradeCode.TRANSCODE_QRCODE, qrcodeTrans.sourceType)
setOutTransInfo(qrcodeTrans.agentMerchId, qrcodeTrans.billno)
payinfo = qrcodeSummary(sourceType)
+ description = dtlType.dictcaption
+ dtltype = param.dtltype
}
val shopacc = accountUtilServcie.readShopbyShopaccno(qrcodeTrans.agentMerchId)
diff --git a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
index a20638d..64f9033 100644
--- a/payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
+++ b/payapi/src/main/kotlin/com/supwisdom/dlpay/api/transaction_builder.kt
@@ -34,11 +34,11 @@
}
fun oppositeAccNo(): String {
- return this.oppAccno
+ return if (hasOpposite()) this.oppAccno else ""
}
fun oppositeAccName(): String {
- return this.oppAccName
+ return if (hasOpposite()) this.oppAccName else ""
}
fun setOpposite(accno: String, accName: String) {
@@ -383,9 +383,11 @@
throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR,
"商户交易金额不正确")
}
- if (!it.hasOpposite()) {
- throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR,
- "商户交易对方账户未设置")
+ if (hasPerson()) {
+ if (!person().isAnonymous() && !it.hasOpposite()) {
+ throw TransactionCheckException(TradeErrorCode.INPUT_DATA_ERROR,
+ "商户交易对方账户未设置")
+ }
}
}
}
diff --git a/payapi/src/main/resources/data.sql b/payapi/src/main/resources/data.sql
index 7c5abc8..2bca5e2 100644
--- a/payapi/src/main/resources/data.sql
+++ b/payapi/src/main/resources/data.sql
@@ -588,6 +588,6 @@
INSERT INTO TB_QRCODE_PATTERN(ID, PATTERN, SOURCETYPE, TENANTID)
VALUES(1, '28\d{16}', 'alipay', '{tenantid}');
INSERT INTO TB_QRCODE_PATTERN(ID, PATTERN, SOURCETYPE, TENANTID)
-VALUES(2, '13\d{16}', 'wechatpay', '{tenantid}');
+VALUES(2, '13\d{16}', 'wechat', '{tenantid}');
----------------------------------------------------
commit;
\ No newline at end of file