From 9634244f5ad3c8493fb28e3a32d7526977cdd160 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Wed, 05 Feb 2025 11:58:50 +0800
Subject: [PATCH] feat(pay): 添加 FIUU支付功能
---
src/main/java/cc/mrbird/febs/pay/model/FIUUOrderRequest.java | 13 ++++++
src/main/java/cc/mrbird/febs/pay/controller/FIUUPayController.java | 56 ++++++++++++++++++++++++++++
2 files changed, 69 insertions(+), 0 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/pay/controller/FIUUPayController.java b/src/main/java/cc/mrbird/febs/pay/controller/FIUUPayController.java
new file mode 100644
index 0000000..1c1d606
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/pay/controller/FIUUPayController.java
@@ -0,0 +1,56 @@
+package cc.mrbird.febs.pay.controller;
+
+import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.pay.model.FIUUOrderRequest;
+import io.swagger.annotations.Api;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping(value = "/api/fuPay")
+@RequiredArgsConstructor
+@Api(value = "FIUUPayController", tags = "FIUU支付")
+public class FIUUPayController {
+ @PostMapping("/initPayment")
+ public FebsResponse initPayment(@RequestBody FIUUOrderRequest orderRequest) {
+ try {
+ String merchantId = "YOUR_MERCHANT_ID";
+ String verifyKey = "YOUR_VERIFY_KEY";
+ String returnUrl = "https://your-app.com/payment/callback"; // 支付结果回调地址
+
+ // 生成 vcode(MD5(amount + merchantId + orderId + verifyKey))
+ String vcode = DigestUtils.md5Hex(
+ orderRequest.getAmount() +
+ merchantId +
+ orderRequest.getOrderId() +
+ verifyKey
+ );
+
+ // 返回支付参数
+ Map<String, String> params = new HashMap<>();
+ params.put("merchant_id", merchantId);
+ params.put("orderid", orderRequest.getOrderId());
+ params.put("amount", orderRequest.getAmount());
+ params.put("bill_name", orderRequest.getBuyerName());
+ params.put("bill_email", orderRequest.getBuyerEmail());
+ params.put("bill_mobile", orderRequest.getBuyerMobile());
+ params.put("bill_desc", orderRequest.getDescription());
+ params.put("currency", "MYR"); // 默认 MYR
+ params.put("vcode", vcode);
+ params.put("returnurl", returnUrl);
+
+ return new FebsResponse().success().data(params);
+ } catch (Exception e) {
+ return new FebsResponse().fail().data("支付参数生成失败");
+ }
+ }
+}
diff --git a/src/main/java/cc/mrbird/febs/pay/model/FIUUOrderRequest.java b/src/main/java/cc/mrbird/febs/pay/model/FIUUOrderRequest.java
new file mode 100644
index 0000000..39c4f26
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/pay/model/FIUUOrderRequest.java
@@ -0,0 +1,13 @@
+package cc.mrbird.febs.pay.model;
+
+import lombok.Data;
+
+@Data
+public class FIUUOrderRequest {
+ private String amount;
+ private String orderId;
+ private String buyerName;
+ private String buyerEmail;
+ private String buyerMobile;
+ private String description;
+}
--
Gitblit v1.9.1