New file |
| | |
| | | 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("支付参数生成失败"); |
| | | } |
| | | } |
| | | } |