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 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支付工具类
|
*/
|
public class TinggPayUtil {
|
|
private static String accessKey = "KxjPP444jEE7K88E7juej4PKqqzKq7qKjKj84q744q9zj4Ej4zK47uj4KKj4";
|
|
private static String ivKey = "qsffKsCOJJdhSBCQ";
|
|
private static String secretKey = "9jjz4Ex74P8ue4qK";
|
|
|
/**
|
* 获取支付数据
|
* @param checkoutRequest
|
* @return
|
*/
|
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();
|
}
|
}
|
|
|
|
|
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="IGOGHANA";//服务代码
|
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("2030376339310"));
|
checkoutRequest.setCustomerEmail("393733352@qq.com");
|
checkoutRequest.setAccountNumber("2030376339310");
|
checkoutRequest.setCustomerFirstName("ZHONGSHI");
|
checkoutRequest.setCustomerLastName("HUANG");
|
checkoutRequest.setRequestAmount(1.00D);
|
checkoutRequest.setMerchantTransactionId("00025");
|
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));
|
}
|
}
|