From 2dfd0c13a80c2b6c979adb44c16f18db24374a28 Mon Sep 17 00:00:00 2001 From: qiube <18969599531@163.com> Date: Wed, 24 Dec 2025 09:22:00 +0800 Subject: [PATCH] =?UTF-8?q?feat(payment):=20=E6=B7=BB=E5=8A=A0PayPal?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 实现PayPal订单创建、查询和捕获的API接口 - 创建PayPal支付取消页面,提供订单信息展示和继续支付功能 - 开发PayPal支付成功页面,处理支付回调和订单状态更新 - 集成PayPal订单状态检查和捕获流程 - 添加支付结果的用户界面和错误处理机制 - 实现订单信息的实时更新和状态同步 --- src/api/paypal.js | 40 ++++++ src/views/PayPalCancel.vue | 106 ++++++++++++++++ src/views/PayPalSuccess.vue | 236 ++++++++++++++++++++++++++++++++++++ 3 files changed, 382 insertions(+) create mode 100644 src/api/paypal.js create mode 100644 src/views/PayPalCancel.vue create mode 100644 src/views/PayPalSuccess.vue diff --git a/src/api/paypal.js b/src/api/paypal.js new file mode 100644 index 0000000..da78a52 --- /dev/null +++ b/src/api/paypal.js @@ -0,0 +1,40 @@ +import request from './request' + +/** + * 创建PayPal订单 + */ +export function createPayPalOrder(data) { + return request({ + url: '/paypal/orders', + method: 'post', + data + }) +} + +/** + * 查询PayPal订单详情 + */ +export function getPayPalOrder(orderId) { + return request({ + url: `/paypal/orders/${orderId}`, + method: 'get' + }) +} + +/** + * 捕获PayPal订单(完成支付) + * @param orderId PayPal订单ID + * @param erpOrderNo ERP订单号(可选) + */ +export function capturePayPalOrder(orderId, erpOrderNo) { + const params = {} + if (erpOrderNo) { + params.erpOrderNo = erpOrderNo + } + return request({ + url: `/paypal/orders/${orderId}/capture`, + method: 'post', + params + }) +} + diff --git a/src/views/PayPalCancel.vue b/src/views/PayPalCancel.vue new file mode 100644 index 0000000..0657c8e --- /dev/null +++ b/src/views/PayPalCancel.vue @@ -0,0 +1,106 @@ + + + + + + 继续支付 + 返回首页 + + + + + 订单信息 + + {{ order.orderNo }} + + {{ order.currency }} {{ formatPrice(order.totalAmount) }} + + {{ order.productName }} + + 待支付 + + + + + + + + + + + diff --git a/src/views/PayPalSuccess.vue b/src/views/PayPalSuccess.vue new file mode 100644 index 0000000..e4e690a --- /dev/null +++ b/src/views/PayPalSuccess.vue @@ -0,0 +1,236 @@ + + + + + + + + 正在处理支付结果... + + + + + + + 支付结果 + + {{ paymentStatus === 'PAID' ? '支付成功' : '支付处理中' }} + + + + + + + + 查看订单 + 返回首页 + + + + + 订单信息 + + {{ order.orderNo }} + + {{ order.currency }} {{ formatPrice(order.totalAmount) }} + + {{ order.productName }} + + + {{ order.paymentStatus === 'PAID' ? '已支付' : '未支付' }} + + + + + + + + + + + 返回首页 + + + + + + + + + +
正在处理支付结果...