|
|
@@ -4,6 +4,8 @@ import com.alibaba.fastjson15.JSON;
|
|
|
import com.alibaba.fastjson15.JSONObject;
|
|
|
import com.alibaba.fastjson15.parser.Feature;
|
|
|
import com.izouma.nineth.config.GeneralProperties;
|
|
|
+import com.izouma.nineth.config.HmPayProperties;
|
|
|
+import com.izouma.nineth.config.PayEaseProperties;
|
|
|
import com.izouma.nineth.config.RedisKeys;
|
|
|
import com.izouma.nineth.dto.BindCardRequest;
|
|
|
import com.izouma.nineth.exception.BusinessException;
|
|
|
@@ -23,6 +25,7 @@ import com.upay.sdk.onlinepay.builder.OrderBuilder;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.junit.Test;
|
|
|
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
import org.springframework.data.redis.core.RedisTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -36,12 +39,11 @@ import java.util.Objects;
|
|
|
@Service
|
|
|
@Slf4j
|
|
|
@AllArgsConstructor
|
|
|
+@EnableConfigurationProperties({PayEaseProperties.class})
|
|
|
public class PayEaseService {
|
|
|
|
|
|
- public static final String merchantId = "896593123";
|
|
|
-
|
|
|
+ private PayEaseProperties payEaseProperties;
|
|
|
private RedisTemplate<String, Object> redisTemplate;
|
|
|
- private GeneralProperties generalProperties;
|
|
|
|
|
|
public JSONObject request(String url, JSONObject requestData) {
|
|
|
log.info("requestData: {}", JSON.toJSONString(requestData, true));
|
|
|
@@ -54,7 +56,7 @@ public class PayEaseService {
|
|
|
}
|
|
|
|
|
|
public String bindCard(BindCardRequest bindCardRequest) {
|
|
|
- BindCardBuilder builder = new BindCardBuilder(merchantId);
|
|
|
+ BindCardBuilder builder = new BindCardBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setMerchantUserId(bindCardRequest.getUserId())
|
|
|
.setBankCardNumber(bindCardRequest.getBankNo())
|
|
|
.setPhoneNumber(bindCardRequest.getPhone())
|
|
|
@@ -88,7 +90,7 @@ public class PayEaseService {
|
|
|
BindCardRequest bindCardRequest = (BindCardRequest) obj;
|
|
|
|
|
|
|
|
|
- BindCardConfirmBuilder builder = new BindCardConfirmBuilder(merchantId);
|
|
|
+ BindCardConfirmBuilder builder = new BindCardConfirmBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setBindCardId(bindCardId)
|
|
|
.setMerchantUserId(bindCardRequest.getUserId())
|
|
|
.setKaptchaCode(code);
|
|
|
@@ -111,7 +113,7 @@ public class PayEaseService {
|
|
|
}
|
|
|
|
|
|
public void bindCardCaptcha(String bindCardId) {
|
|
|
- BindCardKaptchaBuilder builder = new BindCardKaptchaBuilder(merchantId);
|
|
|
+ BindCardKaptchaBuilder builder = new BindCardKaptchaBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setBindCardId(bindCardId);
|
|
|
JSONObject response = request(ConfigurationUtils.getCashierBindCardKaptchaUrl(), builder.bothEncryptBuild());
|
|
|
if (!"SUCCESS".equals(response.getString("status"))) {
|
|
|
@@ -123,7 +125,7 @@ public class PayEaseService {
|
|
|
|
|
|
public void unbind(String userId, String bindCardId) {
|
|
|
|
|
|
- UnBindCardBuilder builder = new UnBindCardBuilder(merchantId);
|
|
|
+ UnBindCardBuilder builder = new UnBindCardBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setBindCardId(bindCardId)
|
|
|
.setMerchantUserId(userId);
|
|
|
JSONObject response = request(ConfigurationUtils.getCashierUnBindCardUrl(), builder.bothEncryptBuild());
|
|
|
@@ -139,11 +141,12 @@ public class PayEaseService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- public Map<String, Object> pay(String subject, String orderId, BigDecimal amount, String userId, String bindCardId) {
|
|
|
+ public Map<String, Object> pay(String subject, String orderId, BigDecimal amount, String userId, String bindCardId,
|
|
|
+ String type) {
|
|
|
String amountStr = amount.multiply(new BigDecimal("100")).setScale(0, RoundingMode.FLOOR)
|
|
|
.stripTrailingZeros().toPlainString();
|
|
|
//通知地址
|
|
|
- String notifyUrl = "http://xiongzhu.frp.izouma.com/notify";
|
|
|
+ String notifyUrl = payEaseProperties.getNotifyUrl() + "/" + type + "/" + orderId;
|
|
|
//回调地址
|
|
|
String callbackUrl = "https://www.raex.vip/9th/home";
|
|
|
//备注
|
|
|
@@ -156,7 +159,7 @@ public class PayEaseService {
|
|
|
productDetail.setQuantity(1L);
|
|
|
productDetail.setAmount(Long.parseLong(amountStr));
|
|
|
|
|
|
- OrderBuilder builder = new OrderBuilder(merchantId);
|
|
|
+ OrderBuilder builder = new OrderBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setRequestId(orderId)
|
|
|
.setOrderAmount(amountStr)
|
|
|
.setOrderCurrency("CNY")
|
|
|
@@ -189,7 +192,7 @@ public class PayEaseService {
|
|
|
}
|
|
|
|
|
|
public void payConfirm(String orderId, String paymentOrderId, String code) {
|
|
|
- ReceiptPaymentBuilder builder = new ReceiptPaymentBuilder(merchantId);
|
|
|
+ ReceiptPaymentBuilder builder = new ReceiptPaymentBuilder(payEaseProperties.getMerchantId());
|
|
|
builder.setRequestId(orderId)
|
|
|
.setPaymentOrderId(paymentOrderId)
|
|
|
.setKaptchaCode(code);
|