diff --git a/demo/ALIPAY_SETUP_GUIDE.md b/demo/ALIPAY_SETUP_GUIDE.md
index 40ee502..6ddfb99 100644
--- a/demo/ALIPAY_SETUP_GUIDE.md
+++ b/demo/ALIPAY_SETUP_GUIDE.md
@@ -211,3 +211,4 @@ ngrok http 8080
- IJPay文档:https://github.com/Javen205/IJPay
+
diff --git a/demo/EMAIL_VERIFICATION_LOGIN_GUIDE.md b/demo/EMAIL_VERIFICATION_LOGIN_GUIDE.md
index 670a2c6..c5b6485 100644
--- a/demo/EMAIL_VERIFICATION_LOGIN_GUIDE.md
+++ b/demo/EMAIL_VERIFICATION_LOGIN_GUIDE.md
@@ -272,3 +272,4 @@ if (result.success) {
安全和用户体验都得到了提升!
+
diff --git a/demo/IMAGE_TO_VIDEO_API_README.md b/demo/IMAGE_TO_VIDEO_API_README.md
index 1f52ca2..b76c629 100644
--- a/demo/IMAGE_TO_VIDEO_API_README.md
+++ b/demo/IMAGE_TO_VIDEO_API_README.md
@@ -292,3 +292,4 @@ grep "img2vid_abc123def456" logs/application.log
+
diff --git a/demo/POINTS_FREEZE_SYSTEM_README.md b/demo/POINTS_FREEZE_SYSTEM_README.md
index b5aaae0..518383f 100644
--- a/demo/POINTS_FREEZE_SYSTEM_README.md
+++ b/demo/POINTS_FREEZE_SYSTEM_README.md
@@ -293,3 +293,4 @@ public TaskQueue addTextToVideoTask(String username, String taskId) {
+
diff --git a/demo/PasswordChecker.java b/demo/PasswordChecker.java
index 0dc0129..8510ed2 100644
--- a/demo/PasswordChecker.java
+++ b/demo/PasswordChecker.java
@@ -36,5 +36,6 @@ public class PasswordChecker {
+
diff --git a/demo/TENCENT_SES_STARTUP_CHECKLIST.md b/demo/TENCENT_SES_STARTUP_CHECKLIST.md
index 3b0d453..2b9b992 100644
--- a/demo/TENCENT_SES_STARTUP_CHECKLIST.md
+++ b/demo/TENCENT_SES_STARTUP_CHECKLIST.md
@@ -284,3 +284,4 @@ ResourceNotFound.TemplateNotFound
- 创建邮件模板并配置template-id
+
diff --git a/demo/TEXT_TO_VIDEO_API_README.md b/demo/TEXT_TO_VIDEO_API_README.md
index 0275ac2..5d1a85c 100644
--- a/demo/TEXT_TO_VIDEO_API_README.md
+++ b/demo/TEXT_TO_VIDEO_API_README.md
@@ -302,3 +302,4 @@ const startPolling = (taskId) => {
+
diff --git a/demo/USER_WORKS_SYSTEM_README.md b/demo/USER_WORKS_SYSTEM_README.md
index ecbbd35..c8c2a88 100644
--- a/demo/USER_WORKS_SYSTEM_README.md
+++ b/demo/USER_WORKS_SYSTEM_README.md
@@ -172,3 +172,4 @@ const updateWork = async (workId, updateData) => {
+
diff --git a/demo/env.example b/demo/env.example
index a8d5d12..61e4b37 100644
--- a/demo/env.example
+++ b/demo/env.example
@@ -17,11 +17,6 @@ ALIPAY_PUBLIC_KEY=alipay_public_key
ALIPAY_NOTIFY_URL=https://yourdomain.com/api/payments/alipay/notify
ALIPAY_RETURN_URL=https://yourdomain.com/api/payments/alipay/return
-# PayPal配置
-PAYPAL_CLIENT_ID=your_paypal_client_id
-PAYPAL_CLIENT_SECRET=your_paypal_client_secret
-PAYPAL_RETURN_URL=https://yourdomain.com/api/payments/paypal/return
-PAYPAL_CANCEL_URL=https://yourdomain.com/api/payments/paypal/cancel
# 日志配置
LOG_FILE_PATH=./logs/application.log
diff --git a/demo/frontend/README.md b/demo/frontend/README.md
index e8f8bb0..3be8588 100644
--- a/demo/frontend/README.md
+++ b/demo/frontend/README.md
@@ -436,5 +436,6 @@ MIT License
+
diff --git a/demo/frontend/src/App-backup.vue b/demo/frontend/src/App-backup.vue
index 482c7a8..a83e595 100644
--- a/demo/frontend/src/App-backup.vue
+++ b/demo/frontend/src/App-backup.vue
@@ -34,3 +34,4 @@ console.log('App.vue 加载成功')
+
diff --git a/demo/frontend/src/api/payments.js b/demo/frontend/src/api/payments.js
index d8a9ca9..cac60a0 100644
--- a/demo/frontend/src/api/payments.js
+++ b/demo/frontend/src/api/payments.js
@@ -47,14 +47,6 @@ export const handleAlipayCallback = (params) => {
return api.post('/payments/alipay/callback', params)
}
-// PayPal支付API
-export const createPayPalPayment = (paymentData) => {
- return api.post(`/payments/paypal/create`, paymentData)
-}
-
-export const handlePayPalCallback = (params) => {
- return api.post('/payment/paypal/callback', params)
-}
// 支付统计API
export const getPaymentStats = () => {
diff --git a/demo/frontend/src/api/userWorks.js b/demo/frontend/src/api/userWorks.js
index 2854888..3536222 100644
--- a/demo/frontend/src/api/userWorks.js
+++ b/demo/frontend/src/api/userWorks.js
@@ -60,3 +60,4 @@ export const getWorkStats = () => {
+
diff --git a/demo/frontend/src/components/Footer.vue b/demo/frontend/src/components/Footer.vue
index d2ea55b..3a10c6f 100644
--- a/demo/frontend/src/components/Footer.vue
+++ b/demo/frontend/src/components/Footer.vue
@@ -95,5 +95,6 @@
+
diff --git a/demo/frontend/src/components/PaymentModal.vue b/demo/frontend/src/components/PaymentModal.vue
index e6d50ba..2b0422d 100644
--- a/demo/frontend/src/components/PaymentModal.vue
+++ b/demo/frontend/src/components/PaymentModal.vue
@@ -23,17 +23,6 @@
Alipay扫码支付
-
-
@@ -127,8 +116,8 @@ const handlePay = async () => {
const paymentData = {
orderId: props.orderId,
amount: props.amount.toString(),
- method: selectedMethod.value.toUpperCase(),
- description: `${props.title} - ${selectedMethod.value === 'alipay' ? '支付宝' : 'PayPal'}支付`
+ method: 'ALIPAY',
+ description: `${props.title} - 支付宝支付`
}
console.log('=== 开始支付流程 ===')
@@ -139,52 +128,46 @@ const handlePay = async () => {
const createResponse = await createPayment(paymentData)
console.log('创建支付订单响应:', createResponse)
- if (createResponse.data && createResponse.data.success) {
+ if (createResponse.data && createResponse.data.success) {
const paymentId = createResponse.data.data.id
console.log('2. 支付订单创建成功,ID:', paymentId)
- if (selectedMethod.value === 'alipay') {
- ElMessage.info('正在生成支付宝二维码...')
+ ElMessage.info('正在生成支付宝二维码...')
+
+ console.log('3. 创建支付宝支付...')
+ // 创建支付宝支付
+ const alipayResponse = await createAlipayPayment({ paymentId })
+ console.log('支付宝支付响应:', alipayResponse)
+ console.log('支付宝支付响应数据:', alipayResponse.data)
+ console.log('支付宝支付响应数据详情:', JSON.stringify(alipayResponse.data, null, 2))
+
+ if (alipayResponse.data && alipayResponse.data.success) {
+ // 显示二维码
+ const qrCode = alipayResponse.data.data.qrCode
+ console.log('4. 支付宝二维码:', qrCode)
- console.log('3. 创建支付宝支付...')
- // 创建支付宝支付
- const alipayResponse = await createAlipayPayment({ paymentId })
- console.log('支付宝支付响应:', alipayResponse)
- console.log('支付宝支付响应数据:', alipayResponse.data)
- console.log('支付宝支付响应数据详情:', JSON.stringify(alipayResponse.data, null, 2))
-
- if (alipayResponse.data && alipayResponse.data.success) {
- // 显示二维码
- const qrCode = alipayResponse.data.data.qrCode
- console.log('4. 支付宝二维码:', qrCode)
-
- // 更新二维码显示
- const qrCodeElement = document.querySelector('#qr-code-img')
- if (qrCodeElement) {
- qrCodeElement.src = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(qrCode)}`
- qrCodeElement.style.display = 'block'
- console.log('5. 二维码图片已设置')
- }
-
- // 隐藏模拟二维码
- const qrPlaceholder = document.querySelector('.qr-placeholder')
- if (qrPlaceholder) {
- qrPlaceholder.style.display = 'none'
- console.log('6. 模拟二维码已隐藏')
- }
-
- ElMessage.success('二维码已生成,请使用支付宝扫码支付')
- console.log('=== 支付流程完成 ===')
-
- } else {
- console.error('支付宝响应失败:', alipayResponse)
- ElMessage.error(alipayResponse.data?.message || '生成二维码失败')
- emit('pay-error', new Error(alipayResponse.data?.message || '生成二维码失败'))
+ // 更新二维码显示
+ const qrCodeElement = document.querySelector('#qr-code-img')
+ if (qrCodeElement) {
+ qrCodeElement.src = `https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(qrCode)}`
+ qrCodeElement.style.display = 'block'
+ console.log('5. 二维码图片已设置')
}
+
+ // 隐藏模拟二维码
+ const qrPlaceholder = document.querySelector('.qr-placeholder')
+ if (qrPlaceholder) {
+ qrPlaceholder.style.display = 'none'
+ console.log('6. 模拟二维码已隐藏')
+ }
+
+ ElMessage.success('二维码已生成,请使用支付宝扫码支付')
+ console.log('=== 支付流程完成 ===')
+
} else {
- // PayPal支付处理
- ElMessage.info('PayPal支付功能开发中...')
- emit('pay-error', new Error('PayPal支付功能暂未开放'))
+ console.error('支付宝响应失败:', alipayResponse)
+ ElMessage.error(alipayResponse.data?.message || '生成二维码失败')
+ emit('pay-error', new Error(alipayResponse.data?.message || '生成二维码失败'))
}
} else {
diff --git a/demo/frontend/src/views/PaymentCreate.vue b/demo/frontend/src/views/PaymentCreate.vue
index 50ee3f5..11e4ea2 100644
--- a/demo/frontend/src/views/PaymentCreate.vue
+++ b/demo/frontend/src/views/PaymentCreate.vue
@@ -49,18 +49,6 @@
支付宝
-
-
- PayPal
-
-
-
- 微信支付
-
-
-
- 银联支付
-
@@ -103,30 +91,6 @@
支持支付宝扫码支付和网页支付
-
-
-
-
-
PayPal
-
支持PayPal账户支付和信用卡支付
-
-
-
-
-
-
-
微信支付
-
支持微信扫码支付和H5支付
-
-
-
-
-
-
-
银联支付
-
支持银联卡支付和网银支付
-
-
diff --git a/demo/src/main/java/com/example/demo/config/PaymentConfig.java b/demo/src/main/java/com/example/demo/config/PaymentConfig.java
index 2d45960..a0e0857 100644
--- a/demo/src/main/java/com/example/demo/config/PaymentConfig.java
+++ b/demo/src/main/java/com/example/demo/config/PaymentConfig.java
@@ -19,12 +19,6 @@ public class PaymentConfig {
return new AliPayConfig();
}
- @Bean
- @ConfigurationProperties(prefix = "paypal")
- public PayPalConfig payPalConfig() {
- return new PayPalConfig();
- }
-
/**
* 支付宝配置
*/
@@ -64,34 +58,4 @@ public class PaymentConfig {
public void setAliPayRootCertPath(String aliPayRootCertPath) { this.aliPayRootCertPath = aliPayRootCertPath; }
}
- /**
- * PayPal支付配置
- */
- public static class PayPalConfig {
- private String clientId;
- private String clientSecret;
- private String mode;
- private String returnUrl;
- private String cancelUrl;
- private String domain;
-
- // Getters and Setters
- public String getClientId() { return clientId; }
- public void setClientId(String clientId) { this.clientId = clientId; }
-
- public String getClientSecret() { return clientSecret; }
- public void setClientSecret(String clientSecret) { this.clientSecret = clientSecret; }
-
- public String getMode() { return mode; }
- public void setMode(String mode) { this.mode = mode; }
-
- public String getReturnUrl() { return returnUrl; }
- public void setReturnUrl(String returnUrl) { this.returnUrl = returnUrl; }
-
- public String getCancelUrl() { return cancelUrl; }
- public void setCancelUrl(String cancelUrl) { this.cancelUrl = cancelUrl; }
-
- public String getDomain() { return domain; }
- public void setDomain(String domain) { this.domain = domain; }
- }
}
diff --git a/demo/src/main/java/com/example/demo/controller/OrderController.java b/demo/src/main/java/com/example/demo/controller/OrderController.java
index 6d54e52..9b12465 100644
--- a/demo/src/main/java/com/example/demo/controller/OrderController.java
+++ b/demo/src/main/java/com/example/demo/controller/OrderController.java
@@ -1,9 +1,9 @@
package com.example.demo.controller;
-import com.example.demo.model.*;
-import com.example.demo.service.OrderService;
-import com.example.demo.service.PaymentService;
-import jakarta.validation.Valid;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Optional;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -15,11 +15,24 @@ import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Optional;
+import com.example.demo.model.Order;
+import com.example.demo.model.OrderItem;
+import com.example.demo.model.OrderStatus;
+import com.example.demo.model.OrderType;
+import com.example.demo.model.Payment;
+import com.example.demo.model.PaymentMethod;
+import com.example.demo.model.User;
+import com.example.demo.service.OrderService;
+import com.example.demo.service.PaymentService;
+
+import jakarta.validation.Valid;
@Controller
@RequestMapping("/orders")
@@ -362,8 +375,6 @@ public class OrderController {
// 根据支付方式跳转到相应的支付页面
if (paymentMethod == PaymentMethod.ALIPAY) {
return "redirect:/payment/alipay/create?paymentId=" + savedPayment.getId();
- } else if (paymentMethod == PaymentMethod.PAYPAL) {
- return "redirect:/payment/paypal/create?paymentId=" + savedPayment.getId();
} else {
model.addAttribute("error", "不支持的支付方式");
return "redirect:/orders/" + id;
diff --git a/demo/src/main/java/com/example/demo/controller/PayPalController.java b/demo/src/main/java/com/example/demo/controller/PayPalController.java
deleted file mode 100644
index 07a882d..0000000
--- a/demo/src/main/java/com/example/demo/controller/PayPalController.java
+++ /dev/null
@@ -1,162 +0,0 @@
-package com.example.demo.controller;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * PayPal支付控制器
- * 基于IJPay实现
- */
-@RestController
-@RequestMapping("/api/payments/paypal")
-public class PayPalController {
-
- private static final Logger logger = LoggerFactory.getLogger(PayPalController.class);
-
-
-
- /**
- * 创建支付订单
- */
- @PostMapping("/create-order")
- public ResponseEntity