From bfa0b11dfbfe5b71e11f4544e688e4d9f325d1b5 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 09 六月 2025 10:26:51 +0800
Subject: [PATCH] 修改bug和管理后台报表

---
 UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java |  104 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 104 insertions(+), 0 deletions(-)

diff --git a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
index c393a9c..49f4762 100644
--- a/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
+++ b/UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java
@@ -1,7 +1,111 @@
 package com.stylefeng.guns.modular.system.util.Tingg;
 
+import com.alibaba.fastjson.JSON;
+import com.stylefeng.guns.modular.system.util.ResultUtil;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CallbackRequest;
+import com.stylefeng.guns.modular.system.util.Tingg.model.CheckoutRequest;
+import io.cellulant.model.Payload;
+import io.cellulant.service.CheckoutEncryption;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * Tingg支付工具类
  */
+@Slf4j
 public class TinggPayUtil {
+
+    private static String accessKey = "8rc1gTV9n91Tc1Sy9oVWry99fgrgrVV8concf9onWooWSg9TVW8nSgo98g88";
+
+    private static String ivKey = "ABp0pqpHMteEJM2N";
+
+    private static String secretKey = "rf8Vo1n9yTSW98cg";
+
+
+    /**
+     * 获取支付数据
+     * @param checkoutRequest
+     * @return
+     */
+    public static ResultUtil checkoutRequest(CheckoutRequest checkoutRequest){
+        try {
+            CheckoutEncryption checkoutEncrption = new CheckoutEncryption(ivKey, secretKey);
+            Payload payload = getPayload(checkoutRequest);
+            log.info("支付请求参数:{}", JSON.toJSONString(payload));
+            String param = checkoutEncrption.encrypt(payload);
+            String url = "https://checkout.tingg.africa/express/checkout?encrypted_payload=" + param + "&access_key=" + accessKey;
+            log.info("支付链接:{}", url);
+            return ResultUtil.success(url);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+
+    public static Payload getPayload(CheckoutRequest checkoutRequest) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String countryCode="GHA";//收取付款的国家的3位ISO代码
+        String currencyCode = "GHS";//3位ISO代码的货币,商家正在开发票。
+        String serviceCode="I-GO_TECHNOLOGIES_LI";//服务代码
+        String dueDate = sdf.format(new Date(System.currentTimeMillis() + 1800000));//到期时间
+        String languageCode="EN";
+        String paymentOptionCode = "";//支付选项码
+
+        Payload payload = new Payload(checkoutRequest.getMerchantTransactionId(), checkoutRequest.getCustomerFirstName(), checkoutRequest.getCustomerLastName(), checkoutRequest.getMsisdn(), checkoutRequest.getCustomerEmail(),
+                checkoutRequest.getRequestAmount(), currencyCode, checkoutRequest.getAccountNumber(), serviceCode, dueDate, checkoutRequest.getRequestDescription(),
+                countryCode, languageCode, paymentOptionCode, checkoutRequest.getSuccessRedirectUrl(), checkoutRequest.getFailRedirectUrl(), checkoutRequest.getPendingRedirectUrl(), checkoutRequest.getCallbackUrl());
+        return payload;
+    }
+
+
+    public static CallbackRequest getRequestParam(HttpServletRequest request) throws IOException {
+        // 读取参数
+        InputStream inputStream;
+        StringBuilder sb = new StringBuilder();
+        inputStream = request.getInputStream();
+        String s;
+        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+        while ((s = in.readLine()) != null) {
+            sb.append(s);
+        }
+        in.close();
+        inputStream.close();
+        String json = sb.toString();
+        System.err.println("结果-----》" + json);
+        CallbackRequest callbackRequest = JSON.parseObject(json, CallbackRequest.class);
+
+        return callbackRequest;
+    }
+
+
+
+
+
+    public static void main(String[] ages){
+        CheckoutRequest checkoutRequest = new CheckoutRequest();
+        checkoutRequest.setMsisdn(Long.valueOf("233244915521"));
+        checkoutRequest.setCustomerEmail("393733352@qq.com");
+        checkoutRequest.setAccountNumber("233244915521");
+        checkoutRequest.setCustomerFirstName("GOU");
+        checkoutRequest.setCustomerLastName("XIONG");
+        checkoutRequest.setRequestAmount(1.00D);
+        checkoutRequest.setMerchantTransactionId("00030");
+        checkoutRequest.setRequestDescription("payment test");
+        checkoutRequest.setCallbackUrl("https://10pz685243.zicp.fun/base/IGO/wxCancelUserBalance");
+        checkoutRequest.setPendingRedirectUrl("https://www.baidu.com");
+        checkoutRequest.setSuccessRedirectUrl("https://www.baidu.com");
+        checkoutRequest.setFailRedirectUrl("https://www.baidu.com");
+        ResultUtil resultUtil = TinggPayUtil.checkoutRequest(checkoutRequest);
+        System.err.println(JSON.toJSONString(resultUtil));
+    }
 }

--
Gitblit v1.7.1