chenza
2023-03-14 751097966dfbd04819c6f3522fce9bd8aef7b8f9
对接支付转账退款地址
4个文件已删除
1个文件已修改
8个文件已添加
1229 ■■■■■ 已修改文件
.gitignore 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/guns-admin.iml 242 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/pom.xml 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/HttpsUtil.java 194 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggRefundUtil.java 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggTransferUtil.java 146 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/enums/BankEnum.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggPayload.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggRequest.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggResponse.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-core/guns-core.iml 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-generator/guns-generator.iml 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverIGOTravel/guns-rest/guns-rest.iml 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.gitignore
New file
@@ -0,0 +1 @@
/DriverIGOTravel/.idea/
DriverIGOTravel/guns-admin/guns-admin.iml
File was deleted
DriverIGOTravel/guns-admin/pom.xml
@@ -16,6 +16,29 @@
    <packaging>war</packaging>
    <dependencies>
        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.10</version>
        </dependency>
        <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.6</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/HttpsUtil.java
New file
@@ -0,0 +1,194 @@
package com.stylefeng.guns.modular.system.util.Tingg;
/**
 * @author chenza
 * @date 2023/3/14 16:37
 */
import org.springframework.stereotype.Component;
import javax.net.ssl.*;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
@Component
public class HttpsUtil {
    private static class TrustAnyTrustManager implements X509TrustManager {
        public void checkClientTrusted(X509Certificate[] chain, String authType)
                throws CertificateException {
        }
        public void checkServerTrusted(X509Certificate[] chain, String authType)
                throws CertificateException {
        }
        public X509Certificate[] getAcceptedIssuers() {
            return new X509Certificate[]{};
        }
    }
    private static class TrustAnyHostnameVerifier implements HostnameVerifier {
        public boolean verify(String hostname, SSLSession session) {
            return true;
        }
    }
    /**
     * post方式请求服务器(https协议)
     *
     * @param url     请求地址
     * @param content 参数
     * @param charset 编码
     * @return
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     * @throws IOException
     */
    public String post(String url, String content, String charset)
            throws NoSuchAlgorithmException, KeyManagementException,
            IOException {
        String result = "";
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, new TrustManager[]{new TrustAnyTrustManager()},
                new java.security.SecureRandom());
        URL console = new URL(url);
        HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
        conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
        conn.setSSLSocketFactory(sc.getSocketFactory());
        conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
        conn.setDoOutput(true);
        conn.connect();
        DataOutputStream out = new DataOutputStream(conn.getOutputStream());
        out.write(content.getBytes(charset));
        // 刷新、关闭
        out.flush();
        out.close();
        InputStream is = conn.getInputStream();
        if (is != null) {
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = is.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            is.close();
            byte[] array = outStream.toByteArray();
            result = new String(array, "utf-8");
            return result;
        }
        return null;
    }
    /**
     * put方式请求服务器(https协议)
     *
     * @param url     请求地址
     * @param content 参数
     * @param token   编码
     * @return
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     * @throws IOException
     */
    public String put(String url, String content, String token)
            throws NoSuchAlgorithmException, KeyManagementException,
            IOException {
        String result = "";
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, new TrustManager[]{new TrustAnyTrustManager()},
                new java.security.SecureRandom());
        URL console = new URL(url);
        HttpsURLConnection conn = (HttpsURLConnection) console.openConnection();
        conn.setRequestMethod("PUT");
        conn.setSSLSocketFactory(sc.getSocketFactory());
        conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
        conn.setDoOutput(true);
        conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
        //conn.setRequestProperty("Authorization", "xxxxx" + token);
        conn.connect();
        DataOutputStream out = new DataOutputStream(conn.getOutputStream());
        //out.write(content.getBytes("UTF8"));
        // 刷新、关闭
        out.flush();
        out.close();
        InputStream is = conn.getInputStream();
        if (is != null) {
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = is.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            is.close();
            byte[] array = outStream.toByteArray();
            result = new String(array, "utf-8");
            return result;
        }
        return null;
    }
    /**
     * get方式请求服务器(https协议)
     *
     * @param url     请求地址
     * @param content 参数
     * @param token   编码
     * @return
     * @throws NoSuchAlgorithmException
     * @throws KeyManagementException
     * @throws IOException
     */
    public String get(String url, String content, String token)
            throws NoSuchAlgorithmException, KeyManagementException,
            IOException {
        String result = "";
        SSLContext sc = SSLContext.getInstance("SSL");
        sc.init(null, new TrustManager[]{new TrustAnyTrustManager()},
                new java.security.SecureRandom());
        URL httpUrl = new URL(url);
        HttpsURLConnection conn = (HttpsURLConnection) httpUrl.openConnection();
        conn.setRequestMethod("GET");
        conn.setSSLSocketFactory(sc.getSocketFactory());
        conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
        conn.setDoOutput(true);
        conn.setRequestProperty("Content-Type", "application/json; charset=utf-8");
        //conn.setRequestProperty("Authorization", "xxxxxx" + token);
        conn.connect();
        //get方法与post方法除了conn.setRequestMethod("GET")这句不一样外,关于DataOutputStream out的几行一定要删除,否则就会报405的错误
        InputStream is = conn.getInputStream();
        if (is != null) {
            ByteArrayOutputStream outStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = is.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            is.close();
            byte[] array = outStream.toByteArray();
            result = new String(array, "utf-8");
            return result;
        }
        return null;
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggRefundUtil.java
New file
@@ -0,0 +1,155 @@
package com.stylefeng.guns.modular.system.util.Tingg;
/**
 * @author chenza
 * @date 2023/3/14 9:15
 */
import com.alibaba.fastjson.JSON;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggPayload;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggRequest;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggResponse;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
/**
 * Tingg退款工具类
 */
public class TinggRefundUtil {
    private static String urlPath = "https://beep2.cellulant.africa:9001/paymentRouter/JSONV2/";
    public static void main(String[] args) {
        TinggRequest tinggRequest = new TinggRequest();
        //设置国家代码
        tinggRequest.setCountryCode("NG");
        //设置功能
        tinggRequest.setFunction("BEEP.postPayment");
        //设置用户名称
        tinggRequest.setUsername("sandboxUser");
        //设置用户密码
        tinggRequest.setPassword("sandboxPassword!");
        //设置服务代码
        tinggRequest.setServiceCode("NG-BANK-PAYOUT");
        //设置MSISDN
        tinggRequest.setMsisdn("256700000000");
        //设置账号
        tinggRequest.setAccountNumber("00072186");
        //设置付款人交易编号
        tinggRequest.setPayerTransactionID("yourUniqueID");
        //设置金额
        tinggRequest.setAmount(50000L);
        //设置备注
        tinggRequest.setNarration("Bank Payout");
        //设置收到付款的日期
        tinggRequest.setDatePaymentReceived(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        //设置回调网址
        tinggRequest.setCallbackUrl("https://yourCallBackUrl.com/receivePaymentStatus");
        //设置目的地银行代码
        tinggRequest.setDestinationBankCode("000012");
        //设置目标账户名称
        tinggRequest.setDestinationAccountName("Shem B. Mwangi");
        //设置目标账户号码
        tinggRequest.setDestinationAccountNo("00072186");
        //设置目的地银行
        tinggRequest.setDestinationBank("StanbicIBTC Bank");
        //设置支付方式
        tinggRequest.setPaymentMode("BANK");
        //设置货币代码
        tinggRequest.setCurrencyCode("NGN");
        //设置客户名称
        tinggRequest.setCustomerNames("Shem B. Mwangi");
        TinggResponse tinggResponse = getTinggResponse(tinggRequest);
        String s = JSON.toJSONString(tinggResponse);
        System.out.println(s);
        System.out.println("-------------");
        try {
            String post = new HttpsUtil().post(urlPath,s,"UTF-8");
            System.out.println(post);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static TinggResponse getTinggResponse(TinggRequest tinggRequest) {
        TinggResponse transferResponse = new TinggResponse();
        //设置国家代码
        transferResponse.setCountryCode(tinggRequest.getCountryCode());
        //设置功能
        transferResponse.setFunction(tinggRequest.getFunction());
        //获得有效载荷
        TinggPayload transferPayload = getTinggPayload(tinggRequest);
        //设置有效载荷
        transferResponse.setPayload(transferPayload);
        return transferResponse;
    }
    private static TinggPayload getTinggPayload(TinggRequest tinggRequest) {
        //有效载荷
        TinggPayload tinggPayload = new TinggPayload();
        //凭据
        HashMap<String, String> credentials = new LinkedHashMap<>();
        //设置用户名
        credentials.put("username", tinggRequest.getUsername());
        //设置支付密码
        credentials.put("password", tinggRequest.getPassword());
        //设置凭据
        tinggPayload.setCredentials(credentials);
        //有效负载的数据包
        ArrayList<Object> packet = new ArrayList<>();
        LinkedHashMap<String, Object> hs = getStringObjectHashMap(tinggRequest);
        packet.add(hs);
        //设置包
        tinggPayload.setPacket(packet);
        return tinggPayload;
    }
    private static LinkedHashMap<String, Object> getStringObjectHashMap(TinggRequest tinggRequest) {
        LinkedHashMap<String, Object> hs = new LinkedHashMap<>();
        //设置服务代码
        hs.put("serviceCode", tinggRequest.getServiceCode());
        hs.put("MSISDN", tinggRequest.getMsisdn());
        //设置账号
        hs.put("accountNumber", tinggRequest.getAccountNumber());
        //设置付款交易人编号
        hs.put("payerTransactionID", tinggRequest.getPayerTransactionID());
        //设置金额
        hs.put("amount", tinggRequest.getAmount());
        hs.put("narration", tinggRequest.getNarration());
        //设置付款时间
        hs.put("datePaymentReceived", tinggRequest.getDatePaymentReceived());
        //额外数据
        HashMap<String, String> tempHs = new LinkedHashMap<>();
        //回调网址
        tempHs.put("callbackUrl", tinggRequest.getCallbackUrl());
        //目的地银行代码
        tempHs.put("destinationBankCode", tinggRequest.getDestinationBankCode());
        //目标账户名称
        tempHs.put("destinationAccountName", tinggRequest.getDestinationAccountName());
        //目的地账户号码
        tempHs.put("destinationAccountNo", tinggRequest.getDestinationAccountNo());
        //目的地银行
        tempHs.put("destinationBank", tinggRequest.getDestinationBank());
        //设置额外数据
        hs.put("extraData", tempHs);
        //设置支付方式
        hs.put("paymentMode", tinggRequest.getPaymentMode());
        //设置货币代码
        hs.put("currencyCode", tinggRequest.getCurrencyCode());
        //设置客户名称
        hs.put("customerNames", tinggRequest.getCustomerNames());
        return hs;
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/TinggTransferUtil.java
New file
@@ -0,0 +1,146 @@
package com.stylefeng.guns.modular.system.util.Tingg;
/**
 * @author chenza
 * @date 2023/3/14 15:16
 */
import com.alibaba.fastjson.JSON;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggPayload;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggRequest;
import com.stylefeng.guns.modular.system.util.Tingg.model.TinggResponse;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
/**
 * Tingg转账工具类
 */
public class TinggTransferUtil {
    private static String urlPath = "https://beep2.cellulant.africa:9001/paymentRouter/JSONV2/";
    public static void main(String[] args) {
        TinggRequest tinggRequest = new TinggRequest();
        //设置国家代码
        tinggRequest.setCountryCode("UG");
        //设置功能
        tinggRequest.setFunction("BEEP.postPayment");
        //设置用户名称
        tinggRequest.setUsername("sandboxUser");
        //设置用户密码
        tinggRequest.setPassword("sandboxPassword!");
        //设置服务代码
        tinggRequest.setServiceCode("UG-MTN-B2C");
        //设置MSISDN
        tinggRequest.setMsisdn("256777777777");
        //设置发票编号
        tinggRequest.setInvoiceNumber("");
        //设置账号
        tinggRequest.setAccountNumber("256777777777");
        //设置付款人交易编号
        tinggRequest.setPayerTransactionID("yourUniqueID");
        //设置金额
        tinggRequest.setAmount(1000L);
        //设置标识
        tinggRequest.setHubID("");
        //设置备注
        tinggRequest.setNarration("MTN Mobile money");
        //设置收到付款的日期
        tinggRequest.setDatePaymentReceived(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        //设置回调网址
        tinggRequest.setCallbackUrl("https://yourCallBackUrl.com/receivePaymentStatus");
        //设置货币代码
        tinggRequest.setCurrencyCode("UGX");
        //设置客户名称
        tinggRequest.setCustomerNames("Walter White");
        //设置支付方式
        tinggRequest.setPaymentMode("Online Payment");
        TinggResponse tinggResponse = getTinggResponse(tinggRequest);
        String s = JSON.toJSONString(tinggResponse);
        System.out.println(s);
        System.out.println("-------------");
        try {
            String post = new HttpsUtil().post(urlPath,s,"UTF-8");
            System.out.println(post);
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (KeyManagementException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static TinggResponse getTinggResponse(TinggRequest tinggRequest) {
        TinggResponse transferResponse = new TinggResponse();
        //设置国家代码
        transferResponse.setCountryCode(tinggRequest.getCountryCode());
        //设置功能
        transferResponse.setFunction(tinggRequest.getFunction());
        //获得有效载荷
        TinggPayload transferPayload = getTinggPayload(tinggRequest);
        //设置有效载荷
        transferResponse.setPayload(transferPayload);
        return transferResponse;
    }
    private static TinggPayload getTinggPayload(TinggRequest tinggRequest) {
        //有效载荷
        TinggPayload tinggPayload = new TinggPayload();
        //凭据
        HashMap<String, String> credentials = new LinkedHashMap<>();
        //设置用户名
        credentials.put("username", tinggRequest.getUsername());
        //设置支付密码
        credentials.put("password", tinggRequest.getPassword());
        //设置凭据
        tinggPayload.setCredentials(credentials);
        //有效负载的数据包
        ArrayList<Object> packet = new ArrayList<>();
        LinkedHashMap<String, Object> hs = getStringObjectHashMap(tinggRequest);
        packet.add(hs);
        //设置包
        tinggPayload.setPacket(packet);
        return tinggPayload;
    }
    private static LinkedHashMap<String, Object> getStringObjectHashMap(TinggRequest tinggRequest) {
        LinkedHashMap<String, Object> hs = new LinkedHashMap<>();
        //设置服务代码
        hs.put("serviceCode", tinggRequest.getServiceCode());
        hs.put("MSISDN", tinggRequest.getMsisdn());
        //设置发票编码
        hs.put("invoiceNumber", tinggRequest.getInvoiceNumber());
        //设置账号
        hs.put("accountNumber", tinggRequest.getAccountNumber());
        //设置付款交易人编号
        hs.put("payerTransactionID", tinggRequest.getPayerTransactionID());
        //设置金额
        hs.put("amount", tinggRequest.getAmount());
        hs.put("hubID", tinggRequest.getHubID());
        hs.put("narration", tinggRequest.getNarration());
        //设置付款时间
        hs.put("datePaymentReceived", tinggRequest.getDatePaymentReceived());
        //额外数据
        HashMap<String, String> tempHs = new LinkedHashMap<>();
        //回调网址
        tempHs.put("callbackUrl", tinggRequest.getCallbackUrl());
        //设置额外数据
        hs.put("extraData", tempHs);
        //设置货币代码
        hs.put("currencyCode", tinggRequest.getCurrencyCode());
        //设置客户名称
        hs.put("customerNames", tinggRequest.getCustomerNames());
        //设置支付方式
        hs.put("paymentMode", tinggRequest.getPaymentMode());
        return hs;
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/enums/BankEnum.java
New file
@@ -0,0 +1,65 @@
package com.stylefeng.guns.modular.system.util.Tingg.enums;
import lombok.Getter;
/**
 * @author chenza
 * @date 2023/3/14 9:02
 */
@Getter
public enum BankEnum {
    KCB_BANK("0001", "KCB"),
    STANCHART_BANK("0002", "Stanchart"),
    ABSA_BANK("0003", "ABSA"),
    BANK_OF_INDIA("0005", "Bank of India"),
    BANK_OF_BARODA("0006", "Bank of Baroda"),
    NCBA_BANK("0007", "NCBA"),
    PRIME_BANK("0010", "Prime Bank"),
    COOP_BANK("0011", "Coop Bank"),
    NBK_BANK("0012", "NBK"),
    M_ORIENTAL("0014", "M-Oriental"),
    CITI_BANK("0016", "Citi Bank"),
    HABIB_BANK_AG_ZURICH("0017", "Habib Bank AG Zurich"),
    MIDDLE_EAST_BANK("0018","Middle East Bank"),
    BANK_OF_AFRICA("0019","Bank of Africa"),
    CONSOLIDATED_BANK("0023","Consolidated"),
    CREDIT_BANK("0025","Credit Bank"),
    ACCESS_BANK("0026","Access Bank"),
    CHASE_BANK("0030","Chase Bank"),
    STANBIC_BANK("0031","Stanbic Bank"),
    ABC_BANK("0035","ABC Bank"),
    ECO_BANK("0043","Eco Bank"),
    EQUATORIAL_COMMERCIAL_BANK("0049","Equatorial Commercial Bank"),
    PARAMOUNT_BANK("0050","Paramount"),
    KINGDOM_BANK("0051","Kingdom Bank"),
    GT_BANK("0053","Gt Bank"),
    VICTORIA_BANK("0054","Victoria Bank"),
    GUARDIAN_BANK("0055","Guardian Bank"),
    IM_BANK("0057","I&M Bank"),
    DEVELOPMENT_BANK("0059","Development Bank"),
    SBM_BANK("0060","SBM"),
    HOUSING_FINANCE("0061","Housing finance"),
    DTB_BANK("0063","DTB"),
    MAYFAIR_BANK("0065","Mayfair Bank"),
    SIDIAN_BANK("0066","Sidian Bank"),
    EQUITY_BANK("0068","Equity Bank"),
    FAMILY_BANK("0070","Family Bank"),
    GULF_AFRICAN_BANK("0072","Gulf African Bank"),
    FIRST_COMMUNITY_BANK("0074","First Community Bank"),
    DIB_BANK("0075","DIB Bank"),
    UBA_BANK("0076","UBA"),
    KWFT_BANK("0078","KWFT"),
    FAULU_BANK("0079","Faulu Bank"),
    POST_BANK("0099","Post Bank"),
    //Instant Payment Switch(及时支付开关)
    IPS("9999","IPS");
    private String destinationBankCode;
    private String destinationBankName;
    private BankEnum(String destinationBankCode, String destinationBankName) {
        this.destinationBankCode = destinationBankCode;
        this.destinationBankName = destinationBankName;
    }
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggPayload.java
New file
@@ -0,0 +1,24 @@
package com.stylefeng.guns.modular.system.util.Tingg.model;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
/**
 * @author chenza
 * @date 2023/3/14 10:10
 */
@Data
public class TinggPayload {
    /**
     * 凭据
     */
    private HashMap<String,String> credentials;
    /**
     * 包
     */
    private ArrayList<Object> packet;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggRequest.java
New file
@@ -0,0 +1,97 @@
package com.stylefeng.guns.modular.system.util.Tingg.model;
import lombok.Data;
/**
 * @author chenza
 * @date 2023/3/14 11:36
 */
@Data
public class TinggRequest {
    /**
     * 国家代码,例如:"NG"
     */
    private String countryCode;
    /**
     * 功能,例如:"BEEP.postPayment"
     */
    private String function;
    /**
     * 用户名称
     */
    private String username;
    /**
     * 用户密码
     */
    private String password;
    /**
     * 服务代码,例如:"NG-BANK-PAYOUT"
     */
    private String serviceCode;
    /**
     * MSISDN,例如:"256700000000"
     */
    private String msisdn;
    /**
     * 账号,例如:"00072186"
     */
    private String accountNumber;
    /**
     * 付款人交易编号,例如:"yourUniqueID"
     */
    private String payerTransactionID;
    /**
     * 金额,例如:50000
     */
    private Long amount;
    /**
     * 备注,例如:"Bank Payout"
     */
    private String narration;
    /**
     * 收到付款的日期
     */
    private String datePaymentReceived;
    /**
     * 回调网址,例如:"https://yourCallBackUrl.com/receivePaymentStatus"
     */
    private String callbackUrl;
    /**
     * 目的地银行代码,例如:"000012"
     */
    private String destinationBankCode;
    /**
     * 目标账户名称,例如:"Shem B. Mwangi"
     */
    private String destinationAccountName;
    /**
     * 目标账户号码,例如:"00072186"
     */
    private String destinationAccountNo;
    /**
     * 目的地银行,例如:"StanbicIBTC Bank"
     */
    private String destinationBank;
    /**
     * 支付方式,例如:"BANK"
     */
    private String paymentMode;
    /**
     * 货币代码,例如: "NGN"
     */
    private String currencyCode;
    /**
     * 客户名称,例如:"Shem B. Mwangi"
     */
    private String customerNames;
    /**
     * 发票编码
     */
    private String  invoiceNumber;
    /**
     * 标识
     */
    private String  hubID;
}
DriverIGOTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/Tingg/model/TinggResponse.java
New file
@@ -0,0 +1,27 @@
package com.stylefeng.guns.modular.system.util.Tingg.model;
/**
 * @author chenza
 * @date 2023/3/14 9:21
 */
import lombok.Data;
/**
 * 转账响应
 */
@Data
public class TinggResponse {
    /**
     * 国家代码例如"UG"
     */
    private String countryCode;
    /**
     * 功能例如"BEEP.postPayment"
     */
    private String function;
    /**
     * 有效载荷
     */
    private TinggPayload payload;
}
DriverIGOTravel/guns-core/guns-core.iml
File was deleted
DriverIGOTravel/guns-generator/guns-generator.iml
File was deleted
DriverIGOTravel/guns-rest/guns-rest.iml
File was deleted