From af6d43a41205f8c7fc1a965cb019c039063bf4f0 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 13 十二月 2023 01:15:07 +0800
Subject: [PATCH] 更新接口
---
UserIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggPayUtil.java | 134 +++++++++++++++++++++++++++-----------------
1 files changed, 82 insertions(+), 52 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 99fb98b..a38715e 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,78 +1,108 @@
package com.stylefeng.guns.modular.system.util.Tingg;
import com.alibaba.fastjson.JSON;
-import com.stylefeng.guns.core.util.ToolUtil;
-import com.stylefeng.guns.modular.system.util.HttpClientUtil;
import com.stylefeng.guns.modular.system.util.ResultUtil;
-import com.stylefeng.guns.modular.system.util.Tingg.model.TokenResponse;
-import org.apache.http.protocol.HTTP;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
+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 java.net.HttpURLConnection;
-import java.util.Calendar;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.TimeZone;
+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支付工具类
*/
-@Component
public class TinggPayUtil {
- @Autowired
- private HttpClientUtil httpClientUtil;
+ private static String accessKey = "8rc1gTV9n91Tc1Sy9oVWry99fgrgrVV8concf9onWooWSg9TVW8nSgo98g88";
+
+ private static String ivKey = "ABp0pqpHMteEJM2N";
+
+ private static String secretKey = "rf8Vo1n9yTSW98cg";
+
/**
- * 获取token
+ * 获取支付数据
+ * @param checkoutRequest
* @return
*/
- public TokenResponse getToken(){
- Map<String, Object> params = new HashMap<>();
- params.put("grant_type", "client_credentials");
- params.put("client_id", TinggConfigEnum.CLIENT_ID.getValue());
- params.put("client_secret", TinggConfigEnum.CLIENT_SECRET.getValue());
-
- String s = httpClientUtil.pushHttpRequset("POST", TinggConfigEnum.TOKEN_URL.getValue(), params, null, "json");
- if(ToolUtil.isNotEmpty(s)){
- TokenResponse tokenResponse = JSON.parseObject(s, TokenResponse.class);
- return tokenResponse;
+ public static ResultUtil checkoutRequest(CheckoutRequest checkoutRequest){
+ try {
+ CheckoutEncryption checkoutEncrption = new CheckoutEncryption(ivKey, secretKey);
+ Payload payload = getPayload(checkoutRequest);
+ String param = checkoutEncrption.encrypt(payload);
+ System.out.println("Encrpted payload=" + param);
+ String url = "https://checkout.tingg.africa/express/checkout?encrypted_payload=" + param + "&access_key=" + accessKey;
+ return ResultUtil.success(url);
+ }catch (Exception e){
+ e.printStackTrace();
+ return ResultUtil.runErr();
}
- return null;
}
- public ResultUtil checkoutRequest(String phone, String email, Double amount){
- Map<String, Object> params = new HashMap<>();
- params.put("merchantTransactionID", "");//商家的唯一交易标识符
- params.put("currencyCode", "");//通过的金额所使用的货币
- params.put("requestAmount", amount);//客户将要支付的总金额
- params.put("countryCode", "");//商家的默认国家代码
- params.put("accountNumber", "");//交易的帐号/参考编号
- params.put("serviceCode", "");//商户的服务代码
- Calendar.getInstance(TimeZone.getTimeZone("UTC"));
- params.put("dueDate", "");//事务到期日期的格式为YYYY-MM-DD HH:mm:ss。这应该是UTC时间
- params.put("requestDescription", "");//事务的叙述
- params.put("customerFirstName", "");//顾客名称
- params.put("customerLastName", "");//客户的姓氏
- params.put("MSISDN", phone);//客户的手机号码
- params.put("customerEmail", email);//客户的邮件
- params.put("paymentWebhookUrl", "");//这是结帐将使用的URL,用相关的支付细节调用商家,以便商家确认支付
- Map<String, String> header = new HashMap<>();
- TokenResponse token = getToken();
- if(null == token || ToolUtil.isNotEmpty(token.getError())){
- System.err.println("调用支付异常,获取token凭证失败!【" + token.getError() + "-----" + token.getMessage() + "】");
- return ResultUtil.error("调用支付异常");
+ 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);
}
- header.put("Authorization", "Bearer " + token.getAccess_token());
- header.put("Content-Type", "application/json");
+ in.close();
+ inputStream.close();
+ String json = sb.toString();
+ System.err.println("结果-----》" + json);
+ CallbackRequest callbackRequest = JSON.parseObject(json, CallbackRequest.class);
- String s = httpClientUtil.pushHttpRequset("POST", TinggConfigEnum.CHECKOUT_URL.getValue(), params, header, "json");
- if(ToolUtil.isNotEmpty(s)){
+ 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