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