diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e26dfe..7b016a8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1 +1,3 @@ -{} \ No newline at end of file +{ + "java.compile.nullAnalysis.mode": "automatic" +} \ No newline at end of file diff --git a/wfc-modules/pom.xml b/wfc-modules/pom.xml index c70acdf..99acaf2 100644 --- a/wfc-modules/pom.xml +++ b/wfc-modules/pom.xml @@ -14,6 +14,7 @@ wfc-job wfc-file wfc-modules-user + wfc-pay wfc-modules diff --git a/wfc-modules/wfc-pay/pom.xml b/wfc-modules/wfc-payment/pom.xml similarity index 97% rename from wfc-modules/wfc-pay/pom.xml rename to wfc-modules/wfc-payment/pom.xml index da16a79..204e7b6 100644 --- a/wfc-modules/wfc-pay/pom.xml +++ b/wfc-modules/wfc-payment/pom.xml @@ -9,10 +9,10 @@ 4.0.0 - wfc-modules-pay + wfc-modules-payment - wfc-modules-pay + wfc-modules-payment diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/WfcPayApplication.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/WfcPayApplication.java similarity index 65% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/WfcPayApplication.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/WfcPayApplication.java index 32e746a..0ef2751 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/WfcPayApplication.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/WfcPayApplication.java @@ -1,10 +1,12 @@ -package org.wfc.pay; +package org.wfc.payment; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.wfc.common.security.annotation.EnableCustomConfig; import org.wfc.common.security.annotation.EnableRyFeignClients; import org.wfc.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; /** * Pay module @@ -17,6 +19,14 @@ import org.wfc.common.swagger.annotation.EnableCustomSwagger2; @SpringBootApplication public class WfcPayApplication { + // @Autowired + // private LocaleMessageUtil localeMessageUtil; + + // @GetMapping("/greeting") + // public String greeting() { + // return localeMessageUtil.getMessage("greeting.message"); + // } + public static void main(String[] args) { SpringApplication.run(WfcPayApplication.class, args); diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/CreditCardController.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/CreditCardController.java similarity index 75% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/CreditCardController.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/CreditCardController.java index 0ce9643..4ad5b89 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/CreditCardController.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/CreditCardController.java @@ -1,4 +1,4 @@ -package org.wfc.pay.controller; +package org.wfc.payment.controller; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; @@ -17,8 +17,11 @@ import org.wfc.common.core.web.page.TableDataInfo; import org.wfc.common.log.annotation.Log; import org.wfc.common.log.enums.BusinessType; import org.wfc.common.security.annotation.RequiresPermissions; -import org.wfc.pay.domain.CreditCard; -import org.wfc.pay.service.ICreditCardService; +import org.wfc.payment.domain.CreditCard; +import org.wfc.payment.domain.PaymentRequest; +import org.wfc.payment.service.ICreditCardService; +import org.springframework.http.ResponseEntity; +import org.wfc.common.core.constant.HttpStatus; /** * Credit card pay controller @@ -26,12 +29,23 @@ import org.wfc.pay.service.ICreditCardService; * @author simon */ @RestController -@RequestMapping("/creditCard") +@RequestMapping("/payments") public class CreditCardController extends BaseController { @Autowired private ICreditCardService ccPayService; + @PostMapping("/creditCard") + public ResponseEntity processPayment(@RequestBody PaymentRequest paymentRequest) { + // 调用支付服务处理支付请求 + boolean paymentResult = ccPayService.processPayment(paymentRequest); + if (paymentResult) { + return ResponseEntity.ok("Payment successful"); + } else { + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body("Payment failed"); + } + } + /** * 根据参数编号获取详细信息 */ diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/PayPalController.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/PayPalController.java similarity index 94% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/PayPalController.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/PayPalController.java index 881762f..999d5f3 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/controller/PayPalController.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/controller/PayPalController.java @@ -1,4 +1,4 @@ -package org.wfc.pay.controller; +package org.wfc.payment.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -13,8 +13,8 @@ import org.wfc.common.core.web.domain.AjaxResult; import org.wfc.common.log.annotation.Log; import org.wfc.common.log.enums.BusinessType; import org.wfc.common.security.annotation.RequiresPermissions; -import org.wfc.pay.domain.PayPal; -import org.wfc.pay.service.IPayPalService; +import org.wfc.payment.domain.PayPal; +import org.wfc.payment.service.IPayPalService; /** diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/CreditCard.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/CreditCard.java similarity index 98% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/CreditCard.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/CreditCard.java index cb3a6d9..790daf7 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/CreditCard.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/CreditCard.java @@ -1,4 +1,4 @@ -package org.wfc.pay.domain; +package org.wfc.payment.domain; import javax.validation.constraints.NotBlank; import javax.validation.constraints.Size; diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/PayPal.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPal.java similarity index 99% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/PayPal.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPal.java index 079c1a7..22cc027 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/PayPal.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PayPal.java @@ -1,4 +1,4 @@ -package org.wfc.pay.domain; +package org.wfc.payment.domain; import org.wfc.common.core.web.domain.BaseEntity; import org.apache.commons.lang3.builder.ToStringBuilder; diff --git a/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PaymentRequest.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PaymentRequest.java new file mode 100644 index 0000000..e57ac9c --- /dev/null +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/PaymentRequest.java @@ -0,0 +1,65 @@ +package org.wfc.payment.domain; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.Size; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.wfc.common.core.annotation.Excel; +import org.wfc.common.core.annotation.Excel.ColumnType; +import org.wfc.common.core.web.domain.BaseEntity; + +/** + * 参数配置表 sys_config + * + * @author wfc + */ + +public class PaymentRequest extends BaseEntity { + + private String cardNumber; + private String cardHolderName; + private String expirationDate; + private String cvv; + private int amount; // 以分为单位 + + // Getters and Setters + public String getCardNumber() { + return cardNumber; + } + + public void setCardNumber(String cardNumber) { + this.cardNumber = cardNumber; + } + + public String getCardHolderName() { + return cardHolderName; + } + + public void setCardHolderName(String cardHolderName) { + this.cardHolderName = cardHolderName; + } + + public String getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(String expirationDate) { + this.expirationDate = expirationDate; + } + + public String getCvv() { + return cvv; + } + + public void setCvv(String cvv) { + this.cvv = cvv; + } + + public int getAmount() { + return amount; + } + + public void setAmount(int amount) { + this.amount = amount; + } +} diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/MetaVo.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/MetaVo.java similarity index 98% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/MetaVo.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/MetaVo.java index 8bed02d..2b9c47b 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/MetaVo.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/MetaVo.java @@ -1,4 +1,4 @@ -package org.wfc.pay.domain.vo; +package org.wfc.payment.domain.vo; import org.wfc.common.core.utils.StringUtils; diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/RouterVo.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/RouterVo.java similarity index 98% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/RouterVo.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/RouterVo.java index 254a476..53002e6 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/RouterVo.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/RouterVo.java @@ -1,4 +1,4 @@ -package org.wfc.pay.domain.vo; +package org.wfc.payment.domain.vo; import com.fasterxml.jackson.annotation.JsonInclude; import java.util.List; diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/TreeSelect.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/TreeSelect.java similarity index 96% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/TreeSelect.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/TreeSelect.java index 2383bff..3a4b41a 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/domain/vo/TreeSelect.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/domain/vo/TreeSelect.java @@ -1,4 +1,4 @@ -package org.wfc.pay.domain.vo; +package org.wfc.payment.domain.vo; import java.io.Serializable; import java.util.List; diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/CreditCardMapper.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/CreditCardMapper.java similarity index 91% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/CreditCardMapper.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/CreditCardMapper.java index dcc9f40..cf17ae4 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/CreditCardMapper.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/CreditCardMapper.java @@ -1,7 +1,7 @@ -package org.wfc.pay.mapper; +package org.wfc.payment.mapper; import java.util.List; -import org.wfc.pay.domain.CreditCard; +import org.wfc.payment.domain.CreditCard; /** * 参数配置 数据层 diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/PayPalMapper.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/PayPalMapper.java similarity index 92% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/PayPalMapper.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/PayPalMapper.java index 6f1e034..a948e7f 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/mapper/PayPalMapper.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/mapper/PayPalMapper.java @@ -1,6 +1,6 @@ -package org.wfc.pay.mapper; +package org.wfc.payment.mapper; -import org.wfc.pay.domain.PayPal; +import org.wfc.payment.domain.PayPal; /** * Paypal mapper diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/ICreditCardService.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/ICreditCardService.java similarity index 76% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/ICreditCardService.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/ICreditCardService.java index c7e70a6..9be4b76 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/ICreditCardService.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/ICreditCardService.java @@ -1,17 +1,20 @@ -package org.wfc.pay.service; - -import org.wfc.pay.domain.CreditCard; +package org.wfc.payment.service; +import org.wfc.payment.domain.CreditCard; +import org.wfc.payment.domain.PaymentRequest; /** * Credit card pay service layer * * @author wfc */ -public interface ICreditCardService + + public interface ICreditCardService { + public boolean processPayment(PaymentRequest paymentRequest); + /** * select credit card information - * + * * @param userId User ID * @return Credit card info */ diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/IPayPalService.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/IPayPalService.java similarity index 92% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/IPayPalService.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/IPayPalService.java index 7ef764a..c7c08bb 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/IPayPalService.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/IPayPalService.java @@ -1,6 +1,6 @@ -package org.wfc.pay.service; +package org.wfc.payment.service; -import org.wfc.pay.domain.PayPal; +import org.wfc.payment.domain.PayPal; /** * Paypal pay service layer diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/CreditCardServiceImpl.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/CreditCardServiceImpl.java similarity index 57% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/CreditCardServiceImpl.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/CreditCardServiceImpl.java index cefbf52..8ff5b9b 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/CreditCardServiceImpl.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/CreditCardServiceImpl.java @@ -1,4 +1,4 @@ -package org.wfc.pay.service.impl; +package org.wfc.payment.service.impl; import java.util.Collection; import java.util.List; @@ -11,9 +11,17 @@ import org.wfc.common.core.exception.ServiceException; import org.wfc.common.core.text.Convert; import org.wfc.common.core.utils.StringUtils; import org.wfc.common.redis.service.RedisService; -import org.wfc.pay.domain.CreditCard; -import org.wfc.pay.mapper.CreditCardMapper; -import org.wfc.pay.service.ICreditCardService; +import org.wfc.payment.domain.CreditCard; +import org.wfc.payment.domain.PaymentRequest; +import org.wfc.payment.mapper.CreditCardMapper; +import org.wfc.payment.service.ICreditCardService; +import java.util.HashMap; +import java.util.Map; +import com.stripe.Stripe; +import com.stripe.model.Charge; +import com.stripe.exception.StripeException; +import com.stripe.param.ChargeCreateParams; +import org.springframework.beans.factory.annotation.Autowired; /** * 参数配置 服务层实现 @@ -25,9 +33,30 @@ public class CreditCardServiceImpl implements ICreditCardService { @Autowired private CreditCardMapper creditCardMapper; + public void SetStripeApiKey(String apiKey) { + Stripe.apiKey = apiKey; + } + + @Override + public boolean processPayment(PaymentRequest paymentRequest) { + ChargeCreateParams params = ChargeCreateParams.builder() + .setAmount((long) paymentRequest.getAmount()) + .setCurrency("usd") + .setSource(paymentRequest.getCardNumber()) // 这里假设前端传递的是支付令牌 + .setDescription("Charge for " + paymentRequest.getCardHolderName()) + .build(); + + try { + Charge charge = Charge.create(params); + return charge.getPaid(); + } catch (StripeException e) { + e.printStackTrace(); + return false; + } + } /** - * 查询参数配置信息 + * 查询参数置信息 * * @param creditCardId 参数配置ID * @return 参数配置信息 diff --git a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/PayPalServiceImpl.java b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/PayPalServiceImpl.java similarity index 88% rename from wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/PayPalServiceImpl.java rename to wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/PayPalServiceImpl.java index 755dcf0..f8c5ae4 100644 --- a/wfc-modules/wfc-pay/src/main/java/org/wfc/pay/service/impl/PayPalServiceImpl.java +++ b/wfc-modules/wfc-payment/src/main/java/org/wfc/payment/service/impl/PayPalServiceImpl.java @@ -1,10 +1,10 @@ -package org.wfc.pay.service.impl; +package org.wfc.payment.service.impl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import org.wfc.pay.mapper.PayPalMapper; -import org.wfc.pay.service.IPayPalService; -import org.wfc.pay.domain.PayPal; +import org.wfc.payment.mapper.PayPalMapper; +import org.wfc.payment.service.IPayPalService; +import org.wfc.payment.domain.PayPal; /** * PayPal service implementation diff --git a/wfc-modules/wfc-pay/src/main/resources/banner.txt b/wfc-modules/wfc-payment/src/main/resources/banner.txt similarity index 100% rename from wfc-modules/wfc-pay/src/main/resources/banner.txt rename to wfc-modules/wfc-payment/src/main/resources/banner.txt diff --git a/wfc-modules/wfc-pay/src/main/resources/bootstrap.yml b/wfc-modules/wfc-payment/src/main/resources/bootstrap.yml similarity index 96% rename from wfc-modules/wfc-pay/src/main/resources/bootstrap.yml rename to wfc-modules/wfc-payment/src/main/resources/bootstrap.yml index a416b24..05e676d 100644 --- a/wfc-modules/wfc-pay/src/main/resources/bootstrap.yml +++ b/wfc-modules/wfc-payment/src/main/resources/bootstrap.yml @@ -6,7 +6,7 @@ server: spring: application: # 应用名称 - name: wfc-pay + name: wfc-payment profiles: # 环境配置 active: '@profileName@' diff --git a/wfc-modules/wfc-pay/src/main/resources/logback.xml b/wfc-modules/wfc-payment/src/main/resources/logback.xml similarity index 100% rename from wfc-modules/wfc-pay/src/main/resources/logback.xml rename to wfc-modules/wfc-payment/src/main/resources/logback.xml diff --git a/wfc-modules/wfc-pay/src/main/resources/mapper/pay/CreditCardMapper.xml b/wfc-modules/wfc-payment/src/main/resources/mapper/payment/CreditCardMapper.xml similarity index 98% rename from wfc-modules/wfc-pay/src/main/resources/mapper/pay/CreditCardMapper.xml rename to wfc-modules/wfc-payment/src/main/resources/mapper/payment/CreditCardMapper.xml index 3320dd5..64661f1 100644 --- a/wfc-modules/wfc-pay/src/main/resources/mapper/pay/CreditCardMapper.xml +++ b/wfc-modules/wfc-payment/src/main/resources/mapper/payment/CreditCardMapper.xml @@ -2,7 +2,7 @@ - + diff --git a/wfc-modules/wfc-pay/src/main/resources/mapper/pay/PayPalMapper.xml b/wfc-modules/wfc-payment/src/main/resources/mapper/payment/PayPalMapper.xml similarity index 98% rename from wfc-modules/wfc-pay/src/main/resources/mapper/pay/PayPalMapper.xml rename to wfc-modules/wfc-payment/src/main/resources/mapper/payment/PayPalMapper.xml index 9d3fcbd..d8d4838 100644 --- a/wfc-modules/wfc-pay/src/main/resources/mapper/pay/PayPalMapper.xml +++ b/wfc-modules/wfc-payment/src/main/resources/mapper/payment/PayPalMapper.xml @@ -2,7 +2,7 @@ - +