Commit 63d0f414 by giaogiao

2021年04月02日10:57:06 修复Metfone错误代码

parent 537848d4
package com.library.TopUp.mefont; //
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
import org.apache.commons.codec.binary.Base64; package com.library.TopUp.mefont;
import javax.crypto.Cipher;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.security.KeyFactory; import java.security.KeyFactory;
...@@ -10,86 +12,68 @@ import java.security.PrivateKey; ...@@ -10,86 +12,68 @@ import java.security.PrivateKey;
import java.security.PublicKey; import java.security.PublicKey;
import java.security.spec.PKCS8EncodedKeySpec; import java.security.spec.PKCS8EncodedKeySpec;
import java.security.spec.X509EncodedKeySpec; import java.security.spec.X509EncodedKeySpec;
import javax.crypto.Cipher;
import org.apache.commons.codec.binary.Base64;
public class MetfoneRSAUtils { public class MetfoneRSAUtils {
static final String pripath = "/com/library/TopUp/mefont/keys/LASIA.pri";
static final String pubpath = "/com/library/TopUp/mefont/keys/LASIA.pub";
final static String pripath = "/com/library/TopUp/mefont/keys/ePayTest.pri"; public MetfoneRSAUtils() {
final static String pubpath = "/com/library/TopUp/mefont/keys/ePayTest.pub"; }
public static String encryptRSA(String plainData) { public static String encryptRSA(String plainData) {
try { try {
String path = MetfoneRSAUtils.class.getResource("/").toString(); String path = MetfoneRSAUtils.class.getResource("/").toString();
path = path.substring(6, path.length() - 1); path = "/" + path.substring(6, path.length() - 1);
path = URLDecoder.decode(path) + pubpath; path = URLDecoder.decode(path) + "/com/library/TopUp/mefont/keys/LASIA.pub";
FileInputStream fis = new FileInputStream(path); FileInputStream fis = new FileInputStream(path);
byte[] byteKeyFromFile = new byte[fis.available()]; byte[] byteKeyFromFile = new byte[fis.available()];
fis.read(byteKeyFromFile); fis.read(byteKeyFromFile);
fis.close(); fis.close();
X509EncodedKeySpec keySpec = new X509EncodedKeySpec keySpec = new X509EncodedKeySpec(byteKeyFromFile);
X509EncodedKeySpec(byteKeyFromFile);
KeyFactory factory = KeyFactory.getInstance("RSA"); KeyFactory factory = KeyFactory.getInstance("RSA");
PublicKey pubKey = factory.generatePublic(keySpec); PublicKey pubKey = factory.generatePublic(keySpec);
// Mã hoá dữ liệu
Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding"); Cipher c = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c.init(Cipher.ENCRYPT_MODE, pubKey); c.init(1, pubKey);
byte encryptedByte[] = c.doFinal(plainData.getBytes()); byte[] encryptedByte = c.doFinal(plainData.getBytes());
String encrypted = Base64.encodeBase64String(encryptedByte); String encrypted = Base64.encodeBase64String(encryptedByte);
return encrypted; return encrypted;
} catch (Exception ex) { } catch (Exception var10) {
System.out.println(ex.getLocalizedMessage()); System.out.println(var10.getLocalizedMessage());
return null;
} }
return null;
} }
public static String decryptRSA(String encryptedData) { public static String decryptRSA(String encryptedData) {
try { try {
String path = MetfoneRSAUtils.class.getResource("/").toString(); String path = MetfoneRSAUtils.class.getResource("/").toString();
path = path.substring(6, path.length() - 1); path = "/" + path.substring(6, path.length() - 1);
path = URLDecoder.decode(path) + pripath; path = URLDecoder.decode(path) + "/com/library/TopUp/mefont/keys/LASIA.pri";
FileInputStream fis = new FileInputStream(path); FileInputStream fis = new FileInputStream(path);
byte[] byteKeyFromFile = new byte[fis.available()]; byte[] byteKeyFromFile = new byte[fis.available()];
fis.read(byteKeyFromFile); fis.read(byteKeyFromFile);
fis.close(); fis.close();
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(byteKeyFromFile);
PKCS8EncodedKeySpec(byteKeyFromFile);
KeyFactory factory = KeyFactory.getInstance("RSA"); KeyFactory factory = KeyFactory.getInstance("RSA");
PrivateKey priKey = factory.generatePrivate(keySpec); PrivateKey priKey = factory.generatePrivate(keySpec);
// Giải mã dữ liệu
Cipher c2 = Cipher.getInstance("RSA/ECB/PKCS1Padding"); Cipher c2 = Cipher.getInstance("RSA/ECB/PKCS1Padding");
c2.init(Cipher.DECRYPT_MODE, priKey); c2.init(2, priKey);
String decrypted = new String decrypted = new String(c2.doFinal(Base64.decodeBase64(encryptedData)));
String(c2.doFinal(Base64.decodeBase64(encryptedData)));
return decrypted; return decrypted;
} catch (Exception ex) { } catch (Exception var9) {
System.out.println(ex.getLocalizedMessage()); System.out.println(var9.getLocalizedMessage());
return null;
} }
return null;
} }
public static void main(String[] args) { public static void main(String[] args) {
String token = "NTKenRyiwOW5xaXnWm/2+HHuTsy4o4dA59J3uVs8bQM+C+Wt/KQM2jjeRHKlAi0UswHabwpRAn+/KBaZtI/MO/ysOa4eEtZCEFui5u5SsKC/iZPxFVA30xlriORaYd7vX3rXvr3I1wNkFromkyATxDWPg3JCUj+soakh9M2SRt54Qa4NxbgsNGgesAHJKQ1JWQglv5pklyVWN7THj1aMjcdq7aigEZgcPI01/+r5Wcwe1pvJx5hH0I3CYRZY+BVM/Jm1g6E17sd3bOT2f7G3ARmFA6i5mgDReZGZpLmx2TogVY+EAGUAZE3LrtBwlzkV5gLrnh+WIZ9nMG7GkTxNFA==";
String token = "lF4inzg0SYpt7VekJEhCRYi/hLaPtxgGpflBo5ocWv7lZT09tD+zP8cqTICzTqT8R4raZ3USzv" +
"nyi6tBcE6hNtdoXa8Cq6ub8AZbyoMB0RMWyPbcaKvnbX34kLRnskUECjEKsBRNpYEVP1rNcSVc+" +
"xmDGC7PtcYV+kIRDp5Dmqhcb/7wOHkqyUemTbvhmgb6wgLXE4pdB6NyJZ7JAbfZ5DiIgyGQ7EK4" +
"7hdb4bGn1/15+M4C3OlpOcp7PuFzBuDO1HRkoLXeayFhMKoLHBj1s0wWaFHbPQIYxpCBFW6lzdO" +
"6rVVuhA1YoaoKNZOnYk9fVZ+vQUj5nY2i4yH8u4GJKw==";
String token2 = "iljUgme83Rj3dCvhFHwFdBB+DXkPpmxTjSFGlsjJJeXQRmQRP62lO9lNYGBkz827TPOjrycRg0BuPLH4I497iuMo7LUMt0mg3C7B3ejRkgcqWoiQxaSjB79mQa8lip/w6Q9S74Wwim/tDw/horrQ/a50+sTe+UYuHh1hjwnr61KQwieNDRFC3rYxeA5WkwpMCVQMHWfTqK3mPjXHqJgoMySUekg0NCbYQYmqWsgetakUuSlaKmrjpK90WfjOsnIeuTWEYHh+tlrI3VVIGF/Pknw6xzLOG+rTi1IZ7RkuHKh8nbiR4uLDkXpvGiiL1Hiq3H2Sz897MZKs1HeqWdrMng=="; String token2 = "iljUgme83Rj3dCvhFHwFdBB+DXkPpmxTjSFGlsjJJeXQRmQRP62lO9lNYGBkz827TPOjrycRg0BuPLH4I497iuMo7LUMt0mg3C7B3ejRkgcqWoiQxaSjB79mQa8lip/w6Q9S74Wwim/tDw/horrQ/a50+sTe+UYuHh1hjwnr61KQwieNDRFC3rYxeA5WkwpMCVQMHWfTqK3mPjXHqJgoMySUekg0NCbYQYmqWsgetakUuSlaKmrjpK90WfjOsnIeuTWEYHh+tlrI3VVIGF/Pknw6xzLOG+rTi1IZ7RkuHKh8nbiR4uLDkXpvGiiL1Hiq3H2Sz897MZKs1HeqWdrMng==";
String str = decryptRSA(token);
// System.out.println(System.getProperty("user.dir")); String encryptText = str + "|682504";
String str = decryptRSA(token2);
String encryptText = str + "|" + "298315";
String retStr = encryptRSA(encryptText); String retStr = encryptRSA(encryptText);
System.out.println("解密后的数据:" + str); System.out.println("解密后的数据:" + str);
System.out.println("加上PIN加密的数据:" + retStr); System.out.println("加上PIN加密的数据:" + retStr);
} }
} }
package com.library.TopUp.mefont; package com.library.TopUp.mefont;
import com.google.gson.Gson; import com.google.gson.Gson;
...@@ -12,168 +13,126 @@ import java.text.SimpleDateFormat; ...@@ -12,168 +13,126 @@ import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.SimpleTimeZone;
import java.util.TimeZone;
public class MetfoneSentUtils { public class MetfoneSentUtils {
private static final String baseUrl = "https://payment.emoney.com.kh:8888/";
private static final String PIN = "682504";
private static final String MyAuthorization = "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300";
public MetfoneSentUtils() {
private final static String baseUrl = "https://36.37.242.116:8301/"; }
// private final static String baseUrl = "https://payment.emoney.com.kh:8888/";
private final static String PIN = "298315";
public static String initTel(String transAmount, String refId, String customerPhoneNumber) { public static String initTel(String transAmount, String refId, String customerPhoneNumber) {
Map params = new HashMap(); Map params = new HashMap();
params.put("serviceType", "TOPUP"); params.put("serviceType", "TOPUP");
params.put("transAmount", transAmount); params.put("transAmount", transAmount);
params.put("currency", "USD"); params.put("currency", "USD");
params.put("refId", refId); params.put("refId", refId);
params.put("customerPhoneNumber", customerPhoneNumber); params.put("customerPhoneNumber", customerPhoneNumber);
Map<String, String> heardMap = new HashMap();
heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
Map<String, String> heardMap = new HashMap<>();
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
String url = "https://payment.emoney.com.kh:8888/LASIA/telco/init";
String url = baseUrl + "ePayTest/telco/init"; String str = HttpUtils.post(url, params, heardMap, 3000, 3000, "UTF-8");
// String urlTest="https://36.37.242.116:8301/ePayTest/telco/init";
String str = HttpUtils.post(url,
params, heardMap
, 3000, 3000, "UTF-8");
return str; return str;
} }
public static String confirmTel(String txPaymentTokenId) { public static String confirmTel(String txPaymentTokenId) {
Map<String, String> heardMap = new HashMap();
Map<String, String> heardMap = new HashMap<>(); heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
Map params = new HashMap(); Map params = new HashMap();
params.put("txPaymentTokenId", txPaymentTokenId); params.put("txPaymentTokenId", txPaymentTokenId);
String conURL = "https://payment.emoney.com.kh:8888/LASIA/telco/confirm";
String conURL = baseUrl + "ePayTest/telco/confirm"; String str = HttpUtils.post(conURL, params, heardMap, 3000, 3000, "UTF-8");
String str = HttpUtils.post(conURL,
params, heardMap
, 3000, 3000, "UTF-8");
return str; return str;
} }
public static String initTelPost(String transAmount, String refId, String customerPhoneNumber) { public static String initTelPost(String transAmount, String refId, String customerPhoneNumber) {
try { try {
Map<String, String> params = new HashMap();
// Map params = new HashMap();
Map<String, String> params = new HashMap<>();
params.put("serviceType", "TOPUP"); params.put("serviceType", "TOPUP");
params.put("transAmount", transAmount); params.put("transAmount", transAmount);
params.put("currency", "USD"); params.put("currency", "USD");
params.put("refId", refId); params.put("refId", refId);
params.put("customerPhoneNumber", customerPhoneNumber); params.put("customerPhoneNumber", customerPhoneNumber);
Map<String, String> heardMap = new HashMap();
heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
Map<String, String> heardMap = new HashMap<>();
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
String requestUrl = "https://payment.emoney.com.kh:8888/LASIA/telco/init";
String str = HttpsTool.send((new Gson()).toJson(params), heardMap, requestUrl, "utf-8", "utf-8", 300000, 300000, "application/json");
String requestUrl = baseUrl + "ePayTest/telco/init";
String str = HttpsTool.send(new Gson().toJson(params), heardMap, requestUrl, "utf-8",
"utf-8", 300 * 1000, 300 * 1000,
"application/json");// 大家最终只要使用这一句代码就可调用
return str; return str;
} catch (Exception var7) {
} catch (Exception e) { var7.getLocalizedMessage();
e.getLocalizedMessage();
return null; return null;
} }
} }
public static String confirmPost(String txPaymentTokenId) { public static String confirmPost(String txPaymentTokenId) {
try { try {
Map<String, String> heardMap = new HashMap();
Map<String, String> heardMap = new HashMap<>(); heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
Map params = new HashMap(); Map params = new HashMap();
params.put("txPaymentTokenId", txPaymentTokenId); params.put("txPaymentTokenId", txPaymentTokenId);
String conURL = "https://payment.emoney.com.kh:8888/LASIA/telco/confirm";
String conURL = baseUrl + "ePayTest/telco/confirm"; String senc = HttpsTool.send((new Gson()).toJson(params), heardMap, conURL, "utf-8", "utf-8", 300000, 300000, "application/json");
String senc = HttpsTool.send(new Gson().toJson(params), heardMap, conURL, "utf-8",
"utf-8", 300 * 1000, 300 * 1000, "application/json");// 大家最终只要使用这一句代码就可调用
return senc; return senc;
} catch (Exception var5) {
} catch (Exception e) { var5.getLocalizedMessage();
e.getLocalizedMessage();
return null; return null;
} }
} }
public static String checkPayPost(String transDetailId, String refId) { public static String checkPayPost(String transDetailId, String refId) {
try { try {
Map<String, String> heardMap = new HashMap();
Map<String, String> heardMap = new HashMap<>(); heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
Map params = new HashMap(); Map params = new HashMap();
params.put("transDetailId", transDetailId); params.put("transDetailId", transDetailId);
params.put("refId", refId); params.put("refId", refId);
String conURL = "https://payment.emoney.com.kh:8888/LASIA/trans/check";
String conURL = baseUrl + "ePayTest/trans/check"; String senc = HttpsTool.send((new Gson()).toJson(params), heardMap, conURL, "utf-8", "utf-8", 300000, 300000, "application/json");
String senc = HttpsTool.send(new Gson().toJson(params), heardMap, conURL, "utf-8",
"utf-8", 300 * 1000, 300 * 1000, "application/json");// 大家最终只要使用这一句代码就可调用
return senc; return senc;
} catch (Exception var6) {
} catch (Exception e) { var6.getLocalizedMessage();
e.getLocalizedMessage();
return null; return null;
} }
} }
public static String billInfoPost(String paymentCode) { public static String billInfoPost(String paymentCode) {
try { try {
Map<String, String> heardMap = new HashMap();
Map<String, String> heardMap = new HashMap<>(); heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
Map params = new HashMap(); Map params = new HashMap();
params.put("paymentCode", paymentCode); params.put("paymentCode", paymentCode);
String conURL = "https://payment.emoney.com.kh:8888/LASIA/telco/metfone-bill/info";
String conURL = baseUrl + "ePayTest/telco/metfone-bill/info"; String senc = HttpsTool.send((new Gson()).toJson(params), heardMap, conURL, "utf-8", "utf-8", 300000, 300000, "application/json");
String senc = HttpsTool.send(new Gson().toJson(params), heardMap, conURL, "utf-8",
"utf-8", 300 * 1000, 300 * 1000, "application/json");// 大家最终只要使用这一句代码就可调用
return senc; return senc;
} catch (Exception var5) {
} catch (Exception e) { var5.getLocalizedMessage();
e.getLocalizedMessage();
return null; return null;
} }
} }
/** /**
* 查询系统我的账户余额 * 查询系统我的账户余额
* *
...@@ -182,55 +141,45 @@ public class MetfoneSentUtils { ...@@ -182,55 +141,45 @@ public class MetfoneSentUtils {
* @return * @return
*/ */
public static String checkMyMoneyPost(String refId, String msisdn) { public static String checkMyMoneyPost(String refId, String msisdn) {
try { try {
Map<String, String> heardMap = new HashMap();
Map<String, String> heardMap = new HashMap<>(); heardMap.put("Authorization", "epa 5b83407f62da2bef2f20a463ffc0b5d2fbf6fab388531a297d7f00627cce3300");
heardMap.put("Authorization", "epa 2478e27af578e11a6af86a8320562124240f5c972e8039cd9c564e53d643bb31");
heardMap.put("e-language", "English"); heardMap.put("e-language", "English");
heardMap.put("Content-Type", "application/json"); heardMap.put("Content-Type", "application/json");
heardMap.put("Accept", "application/json"); heardMap.put("Accept", "application/json");
String pin = "682504|" + msisdn + "|" + refId;
String pin = PIN + "|" + msisdn + "|" + refId;
Map params = new HashMap(); Map params = new HashMap();
params.put("refId", refId); params.put("refId", refId);
params.put("serviceType", "TOPUP"); params.put("serviceType", "TOPUP");
params.put("msisdn", msisdn); params.put("msisdn", msisdn);
params.put("pin", MetfoneRSAUtils.encryptRSA(pin));//encrypt the plain text in format "pin|msisdn|refId params.put("pin", MetfoneRSAUtils.encryptRSA(pin));
String conURL = "https://payment.emoney.com.kh:8888/LASIA/account/balance";
String conURL = baseUrl + "ePayTest/account/balance"; String senc = HttpsTool.send((new Gson()).toJson(params), heardMap, conURL, "utf-8", "utf-8", 300000, 300000, "application/json");
String senc = HttpsTool.send(new Gson().toJson(params), heardMap, conURL, "utf-8",
"utf-8", 300 * 1000, 300 * 1000,
"application/json");// 大家最终只要使用这一句代码就可调用
return senc; return senc;
} catch (Exception var7) {
} catch (Exception e) { var7.getLocalizedMessage();
e.getLocalizedMessage();
return null; return null;
} }
} }
public static void main(String[] args) { // public static void main(String[] args) {
/* String str = checkMyMoneyPost("1200016", "0979530750"); // String str = checkMyMoneyPost(getFormatedDateString(7.0F), "855886402606");
//{"status":0,"code":"MSG_SUCCESS","message":"Success","msisdn":null,"accountName":null,"accountType":null,"balances":{"KHR":"498,983","USD":"5,135.60"}} // System.out.println(str);
System.out.println(str);*/ // }
String str = checkMyMoneyPost("200108184311227","0979530750"); public static void main(String[] args) {
System.out.println(str); // String phone = "0977722887";
} String phone = "0887038371";
public static void main222(String[] args) {
String phone = "0979530750";
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
String hms = sdf.format(new Date()); String hms = sdf.format(new Date());
ResultsModel resultsModel = sentTopUp(phone, 1, hms);
System.out.println("充值日志:" + resultsModel.getTip());
System.out.println("充值状态:" + resultsModel.isSuccessful());
System.out.println("拓展字段:" + resultsModel.getExpandText());
ResultsModel resultsModel=sentTopUp(phone, 1, hms); int i=1;
System.out.println("充值日志:"+resultsModel.getTip());
System.out.println("充值状态:"+resultsModel.isSuccessful());
System.out.println("拓展字段:"+resultsModel.getExpandText());
} }
/** /**
...@@ -242,47 +191,41 @@ public class MetfoneSentUtils { ...@@ -242,47 +191,41 @@ public class MetfoneSentUtils {
* @return * @return
*/ */
public static ResultsModel sentTopUp(String phone, int amount, String orderNum) { public static ResultsModel sentTopUp(String phone, int amount, String orderNum) {
String tip = ""; String tip = "";
boolean topUpSuccess = false; boolean topUpSuccess = false;
try { try {
String refId = orderNum;
String transDetailId = "";//可以用来复查充值订单数据 String transDetailId = "";//可以用来复查充值订单数据
String json = initTelPost(String.valueOf(amount), orderNum, phone);
String json = initTelPost(String.valueOf(amount), refId, phone);
String tokenId = ""; String tokenId = "";
String str;
if (!TextUtils.isEmpty(json)) { if (!TextUtils.isEmpty(json)) {
JsonObject object = new JsonParser().parse(json).getAsJsonObject(); JsonObject object = (new JsonParser()).parse(json).getAsJsonObject();
String status = object.get("status") == null ? "" : object.get("status").getAsString(); str = object.get("status") == null ? "" : object.get("status").getAsString();
//请求是否成功 if (str.equals("0")) {
if (status.equals("0")) {
JsonObject txDetail = object.get("txDetail").getAsJsonObject(); JsonObject txDetail = object.get("txDetail").getAsJsonObject();
if (txDetail != null) { if (txDetail != null) {
//获取需要解密的值
tokenId = txDetail.get("txPaymentTokenId").getAsString(); tokenId = txDetail.get("txPaymentTokenId").getAsString();
transDetailId = txDetail.get("transDetailId").getAsString(); transDetailId = txDetail.get("transDetailId").getAsString();
} else { } else {
tip += "返回值txDetail为空"; tip = tip + "返回值txDetail为空";
} }
} else { } else {
tip += "initTel返回结果:" + new Gson().toJson(object) + " \n"; tip = tip + "initTel返回结果:" + (new Gson()).toJson(object) + " \n";
} }
} else { } else {
tip += "返回值为空"; tip = tip + "返回值为空";
} }
String conStr = ""; String conStr = "";
String status;
if (!TextUtils.isEmpty(tokenId)) { if (!TextUtils.isEmpty(tokenId)) {
String str = MetfoneRSAUtils.decryptRSA(tokenId); str = MetfoneRSAUtils.decryptRSA(tokenId);
status = str + "|" + "682504";
String encryptText = str + "|" + PIN; tip = tip + "解析的值:" + status;
// tip += "解析的值:" + encryptText; String retStr = MetfoneRSAUtils.encryptRSA(status);
String retStr = MetfoneRSAUtils.encryptRSA(encryptText); tip = tip + "\n加密后的值:" + retStr + "\n";
// tip += "\n" + "加密后的值:" + retStr;
//发起充值
conStr = confirmPost(retStr); conStr = confirmPost(retStr);
} }
...@@ -291,24 +234,40 @@ public class MetfoneSentUtils { ...@@ -291,24 +234,40 @@ public class MetfoneSentUtils {
//有结果返回 //有结果返回
System.out.println(conStr); System.out.println(conStr);
JsonObject confirmObject = new JsonParser().parse(conStr).getAsJsonObject(); JsonObject confirmObject = (new JsonParser()).parse(conStr).getAsJsonObject();
String status = confirmObject.get("status") == null ? "" : confirmObject.get("status").getAsString(); status = confirmObject.get("status") == null ? "" : confirmObject.get("status").getAsString();
if (status.equals("0")) { if (status.equals("0")) {
System.out.println("充值成功"); System.out.println("充值成功");
topUpSuccess = true; topUpSuccess = true;
tip += " 充值成功!!!"; tip = tip + " 充值成功!!!";
} else { } else {
tip += "confirmTel返回结果:" + new Gson().toJson(confirmObject) + " \n"; tip = tip + "confirmTel返回结果:" + (new Gson()).toJson(confirmObject) + " \n";
} }
} }
// String checkStr = checkPayPost(transDetailId, refId);
// System.out.println(checkStr);
return new ResultsModel(topUpSuccess, tip, transDetailId); return new ResultsModel(topUpSuccess, tip, transDetailId);
} catch (Exception e) { } catch (Exception var13) {
e.printStackTrace(); var13.printStackTrace();
return new ResultsModel(topUpSuccess, tip); return new ResultsModel(topUpSuccess, tip);
} }
} }
public static String getFormatedDateString(float timeZoneOffset) {
if (timeZoneOffset > 13.0F || timeZoneOffset < -12.0F) {
timeZoneOffset = 0.0F;
}
int newTime = (int) (timeZoneOffset * 60.0F * 60.0F * 1000.0F);
String[] ids = TimeZone.getAvailableIDs(newTime);
Object timeZone;
if (ids.length == 0) {
timeZone = TimeZone.getDefault();
} else {
timeZone = new SimpleTimeZone(newTime, ids[0]);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
sdf.setTimeZone((TimeZone) timeZone);
return sdf.format(new Date());
}
} }
PRIVATE KEY:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCVL1nXktHcEMHSTh7gQHd4p9eoBYU/630Hy4JNY5XoRvi3QQKq7RRtAGa2tHI7u8jfwdtdnoUWplBuTh/QWY/wlikYT6NHpZqkv1TsSaz67cXfckA4rInlHUZmgi4ACax7HMdCKYV9pjE2iPsziry2jt0lz8b5cXFjZgzS+pHoYUqh7GLHEqKfzEamCcbIC7lkR4aAg9VK9oSMFzFR3QIa1ocMqYnJO5Jht83VncWBUFEG+VzMntxjHE8Q5I6YyP/oxkALF/pNjsgP6U4SelrlP8rNTPVRgOupVzjzL72M5MSGrFmAEqKJyvDni4uvJMkc/wCj6kzD6MwUpv+WrlH9AgMBAAECggEARELFRglM8vfL59GM+SkmQVPzLlNQVB4JOJ7awVRWzFBlD1y0vsb5+KIdXW4VctWKpS+LkzusQ9/Xn5Epp2jDnt7mcNRHrsnMh6NwVSmk97ACQSqCzivMcMRDaTYZnDTQ8ggJ+HENPp/jlsN4xW2uyY13DQ0USyCoNEYGiibSylO8oZdtU3nfzatoo5eW1Kfcc1MhQaY1BXpSS6VB6XgrtsoqSh9rybNyWalLB8kxJlE9izHFQxj/+RI2v9bT7JtS7iARgFyvhFkv012RiOS04XH1tt6oFaVY1nT6Fy5vOEajUGWwbRFegQwr4KJAxKWucKY4AQJVWKJJrcEqN64pgQKBgQDnzfB7sUjk4IG619LAzo3zbeezoZEdMK8iSdEW1FXnuFnkcQ2TC0N41WFUhasGy8KeAUAAOPTreI7sxKcgKB/CAplLeb8OwEha16JhdNLzxeVELt2gMWVXfZdjMJELZKdPAzQCR2RDgippdsWAX3iG7FTf0JPZF0r0+kVYh3+InQKBgQCkwbs34WLTK6iSAw6l6e5Q6wg8wfGhFLoSf2cetcB+9+ctOs9vMtSgw+zqhW5LHzi5DeiM6iRI4ZY4qYlI80RdFvBsJG4nGxylGTl4hEv/rY5rzjan0jHxEpNCK7Bw5OAk7HVfD3uwxLDi/Br79mW1MIxG9WFpDfNNQ4XTADBA4QKBgHc5qTM1oDR4dMFROIkKtGA8aywtMaI95BZSuURwui6Q10t0CnNTG8UOmx0KE0lPjC4QnoZ+xRpHy9tj2kHj4VG8XHRBjk9b/tsahd5yY/4WDzHemQdH4MP7SN4voKqnfpZZI2r4pU1DqeTMvhClCiz7aTwk36aNIHSYNQqvxpzRAoGAYM9JYCt6s1TLB4juWYVcuIVyYKkhfyI7t9TO1he8FZ87YrNU4iU/FXwqwR9IULH21Z4bkHmgeoa7i23rMkdnWz+4ZAMACtB+g3CP+YXbVlA4CJayPOhg2iOtDcu4MI38OxYKXaIubw8UVTwH6xe8abwuIR/cbit5VGQhxXst32ECgYEAmKMt8LDjtc+MXBbt5n8K4HAw6PO6jAfoSLgyBpchaYOQwlgPu3hIeamp3PtuaYuX0111Y18dW4Bum8oXX142dUma17zXONBiK/DEiYFZVleGim22GajVev7QD/nyLzrDL2z46hfkzoQjzfpqllgjQ6OvRv+uUJR2BgtCCnmMPAE=
PUBLIC KEY:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhtV7fPkhM3KjzWt/S7mXDpBkPdHGyDUptS4tnFjdSL10C/XSeDWu2NC72owruRXTHnRfWUtxuygoUdQTccMpXmUv1BtYrQK9Cs09UA0mCKXuLxDxhVVXGcOmi/z2s9Njd2sknLYUhZG2b+xISlQNjeqRqnhG4pFgzRadm+DOwbfBQiBaSz9wP6JpaNOaPHI2ZGi0DoKjxCx3n5Nk4JF9X7v38kZis5sMoMoRyFQarwqVegOLZVCMWfgXcZPKko0WKLXtF5DBPxnmx8IkcBx/aimoGzjQZFerrpdgPf81W6nxD+Ui74PVwmny/hGMd3pLv70B9wgBVnkDtrxygkjywwIDAQAB
\ No newline at end of file
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
\ No newline at end of file \ No newline at end of file
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn0dF9WwFY8Te4AEoGdTC34c9vStRegi9D9H4jXXNoOAMyRPH+e9I+ZTJfERpIs45j+Y+KezmI0bFJ/mk06ZK9Si9V81aeBsgtgy5Ul4reQYkH9KL0G7hboX1eePkmc95qCQFwGD3PEITKD6ei43YxYfOf8BltHFZ0Z+opkTTZHW5aOMAFUIRoaXTpaVD+I7rx6gDJX+pZsPowLpfFjGAY2YRe2FJN1YXtyJFEDhRJDeqY4QakelyKGDK8gi5CFLxDtkUxpF3QWUk98WLJH/mkGJUmKAORksVR7ReaHbEWQkJUuDUxh0YUr9X7aXGZnbHAuDTbUqCP4L/wFBIhWWaOwIDAQAB MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhtV7fPkhM3KjzWt/S7mXDpBkPdHGyDUptS4tnFjdSL10C/XSeDWu2NC72owruRXTHnRfWUtxuygoUdQTccMpXmUv1BtYrQK9Cs09UA0mCKXuLxDxhVVXGcOmi/z2s9Njd2sknLYUhZG2b+xISlQNjeqRqnhG4pFgzRadm+DOwbfBQiBaSz9wP6JpaNOaPHI2ZGi0DoKjxCx3n5Nk4JF9X7v38kZis5sMoMoRyFQarwqVegOLZVCMWfgXcZPKko0WKLXtF5DBPxnmx8IkcBx/aimoGzjQZFerrpdgPf81W6nxD+Ui74PVwmny/hGMd3pLv70B9wgBVnkDtrxygkjywwIDAQAB
\ No newline at end of file \ No newline at end of file
PRIVATE KEY:
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCVL1nXktHcEMHSTh7gQHd4p9eoBYU/630Hy4JNY5XoRvi3QQKq7RRtAGa2tHI7u8jfwdtdnoUWplBuTh/QWY/wlikYT6NHpZqkv1TsSaz67cXfckA4rInlHUZmgi4ACax7HMdCKYV9pjE2iPsziry2jt0lz8b5cXFjZgzS+pHoYUqh7GLHEqKfzEamCcbIC7lkR4aAg9VK9oSMFzFR3QIa1ocMqYnJO5Jht83VncWBUFEG+VzMntxjHE8Q5I6YyP/oxkALF/pNjsgP6U4SelrlP8rNTPVRgOupVzjzL72M5MSGrFmAEqKJyvDni4uvJMkc/wCj6kzD6MwUpv+WrlH9AgMBAAECggEARELFRglM8vfL59GM+SkmQVPzLlNQVB4JOJ7awVRWzFBlD1y0vsb5+KIdXW4VctWKpS+LkzusQ9/Xn5Epp2jDnt7mcNRHrsnMh6NwVSmk97ACQSqCzivMcMRDaTYZnDTQ8ggJ+HENPp/jlsN4xW2uyY13DQ0USyCoNEYGiibSylO8oZdtU3nfzatoo5eW1Kfcc1MhQaY1BXpSS6VB6XgrtsoqSh9rybNyWalLB8kxJlE9izHFQxj/+RI2v9bT7JtS7iARgFyvhFkv012RiOS04XH1tt6oFaVY1nT6Fy5vOEajUGWwbRFegQwr4KJAxKWucKY4AQJVWKJJrcEqN64pgQKBgQDnzfB7sUjk4IG619LAzo3zbeezoZEdMK8iSdEW1FXnuFnkcQ2TC0N41WFUhasGy8KeAUAAOPTreI7sxKcgKB/CAplLeb8OwEha16JhdNLzxeVELt2gMWVXfZdjMJELZKdPAzQCR2RDgippdsWAX3iG7FTf0JPZF0r0+kVYh3+InQKBgQCkwbs34WLTK6iSAw6l6e5Q6wg8wfGhFLoSf2cetcB+9+ctOs9vMtSgw+zqhW5LHzi5DeiM6iRI4ZY4qYlI80RdFvBsJG4nGxylGTl4hEv/rY5rzjan0jHxEpNCK7Bw5OAk7HVfD3uwxLDi/Br79mW1MIxG9WFpDfNNQ4XTADBA4QKBgHc5qTM1oDR4dMFROIkKtGA8aywtMaI95BZSuURwui6Q10t0CnNTG8UOmx0KE0lPjC4QnoZ+xRpHy9tj2kHj4VG8XHRBjk9b/tsahd5yY/4WDzHemQdH4MP7SN4voKqnfpZZI2r4pU1DqeTMvhClCiz7aTwk36aNIHSYNQqvxpzRAoGAYM9JYCt6s1TLB4juWYVcuIVyYKkhfyI7t9TO1he8FZ87YrNU4iU/FXwqwR9IULH21Z4bkHmgeoa7i23rMkdnWz+4ZAMACtB+g3CP+YXbVlA4CJayPOhg2iOtDcu4MI38OxYKXaIubw8UVTwH6xe8abwuIR/cbit5VGQhxXst32ECgYEAmKMt8LDjtc+MXBbt5n8K4HAw6PO6jAfoSLgyBpchaYOQwlgPu3hIeamp3PtuaYuX0111Y18dW4Bum8oXX142dUma17zXONBiK/DEiYFZVleGim22GajVev7QD/nyLzrDL2z46hfkzoQjzfpqllgjQ6OvRv+uUJR2BgtCCnmMPAE=
PUBLIC KEY:
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhtV7fPkhM3KjzWt/S7mXDpBkPdHGyDUptS4tnFjdSL10C/XSeDWu2NC72owruRXTHnRfWUtxuygoUdQTccMpXmUv1BtYrQK9Cs09UA0mCKXuLxDxhVVXGcOmi/z2s9Njd2sknLYUhZG2b+xISlQNjeqRqnhG4pFgzRadm+DOwbfBQiBaSz9wP6JpaNOaPHI2ZGi0DoKjxCx3n5Nk4JF9X7v38kZis5sMoMoRyFQarwqVegOLZVCMWfgXcZPKko0WKLXtF5DBPxnmx8IkcBx/aimoGzjQZFerrpdgPf81W6nxD+Ui74PVwmny/hGMd3pLv70B9wgBVnkDtrxygkjywwIDAQAB
\ No newline at end of file
...@@ -15,37 +15,31 @@ import com.library.model.SegmentModel; ...@@ -15,37 +15,31 @@ import com.library.model.SegmentModel;
import com.library.service.AutomaticCodeService; import com.library.service.AutomaticCodeService;
import com.library.util.Paygo24Utils; import com.library.util.Paygo24Utils;
import com.library.util.TransformationTools; import com.library.util.TransformationTools;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* Created by Administrator on 2018\11\22 0022.
*/
@Service @Service
@Transactional @Transactional
public class AutomaticCodeServiceImpl implements AutomaticCodeService { public class AutomaticCodeServiceImpl implements AutomaticCodeService {
@Resource @Resource
private AutomaticQueueMapper automaticQueueMapper; private AutomaticQueueMapper automaticQueueMapper;
@Resource @Resource
private CurrencyMapper currencyMapper; private CurrencyMapper currencyMapper;
private static String PREFIX_ZERO = "0";
private final static String SegmentType_Cellcard = "Cellcard";
private final static String SegmentType_Metfone = "Metfone";
private final static String SegmentType_Smart = "Smart";
private final static String SegmentType_Seatel = "Seatel";
public static String REGULARLY = "^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\\d{8}$"; public static String REGULARLY = "^1(3[0-9]|4[57]|5[0-35-9]|7[0135678]|8[0-9])\\d{8}$";
private static final String PREFIX_ZERO = "0"; private static final String SegmentType_Cellcard = "Cellcard";
private static final String SegmentType_Metfone = "Metfone";
private static final String SegmentType_Smart = "Smart";
private static final String SegmentType_Seatel = "Seatel";
@Override @Override
public boolean isChinaPhone(String phone) { public boolean isChinaPhone(String phone) {
...@@ -73,8 +67,8 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService { ...@@ -73,8 +67,8 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService {
//自动处理状态说明 //自动处理状态说明
String desc = ""; String desc = "";
AutomaticQueueModel automaticQueueModel = null; AutomaticQueueModel automaticQueueModel = null;
String top_up_num = ""; String top_up_num = "";
try { try {
automaticQueueModel = (AutomaticQueueModel) TransformationTools.ToObjectOne(AutomaticQueueModel.class, map); automaticQueueModel = (AutomaticQueueModel) TransformationTools.ToObjectOne(AutomaticQueueModel.class, map);
// 修改状态 // 修改状态
...@@ -101,57 +95,63 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService { ...@@ -101,57 +95,63 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService {
desc = resultsModel.getTip(); desc = resultsModel.getTip();
success = resultsModel.isSuccessful(); success = resultsModel.isSuccessful();
top_up_num = resultsModel.getTopUpNum(); top_up_num = resultsModel.getTopUpNum();
} catch (Exception var11) {
} catch (Exception e) { var11.printStackTrace();
e.printStackTrace();
desc = "System error."; desc = "System error.";
} }
// 自动处理结果
this.automaticForTackResult(automaticQueueModel, success, desc, top_up_num); this.automaticForTackResult(automaticQueueModel, success, desc, top_up_num);
} }
}
private ResultsModel sentTopup(AutomaticQueueModel automaticQueueModel, String top_up_num) { }
private ResultsModel sentTopup(AutomaticQueueModel automaticQueueModel, String top_up_datetime) {
ResultsModel resultsModel = null; ResultsModel resultsModel = null;
try { try {
//充值订单编号 // //充值订单编号
String orderNumId = top_up_num; // String orderNumId = top_up_datetime;
//通过手机前三位获取到运营商 //通过手机前三位获取到运营商
String phoneThree = automaticQueueModel.getOrder_phone().substring(0, 3); String phoneThree = automaticQueueModel.getOrder_phone().substring(0, 3);
Map<String, Object> map = automaticQueueMapper.selectSegment(phoneThree); Map<String, Object> map = this.automaticQueueMapper.selectSegment(phoneThree);
//1.先判断这是哪个公司的充值订单,然后发起充值 //1.先判断这是哪个公司的充值订单,然后发起充值
SegmentModel segmentModel = (SegmentModel) TransformationTools.ToObjectOne(SegmentModel.class, map);
if (segmentModel.getOperator().equals(SegmentType_Cellcard)) { SegmentModel segmentModel = (SegmentModel)TransformationTools.ToObjectOne(SegmentModel.class, map);
if (segmentModel.getOperator().equals("Cellcard")) {
//Cellcard的手机号,则选择Cellcard公司的api发起充值 //Cellcard的手机号,则选择Cellcard公司的api发起充值
resultsModel = CellcardSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), orderNumId, automaticQueueModel.getOrder_money().intValue());
resultsModel.setTopUpNum(orderNumId); resultsModel = CellcardSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), top_up_datetime, automaticQueueModel.getOrder_money().intValue());
} else if (segmentModel.getOperator().equals(SegmentType_Metfone)) { resultsModel.setTopUpNum(top_up_datetime);
resultsModel = MetfoneSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue(), orderNumId); } else if (segmentModel.getOperator().equals("Metfone")) {
resultsModel.setTopUpNum(orderNumId); resultsModel = MetfoneSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue(), top_up_datetime);
} else if (segmentModel.getOperator().equals(SegmentType_Smart)) { resultsModel.setTopUpNum(top_up_datetime);
resultsModel = SmartSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue(), orderNumId); } else if (segmentModel.getOperator().equals("Smart")) {
resultsModel.setTopUpNum(orderNumId); resultsModel = SmartSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue(), top_up_datetime);
} else if (segmentModel.getOperator().equals(SegmentType_Seatel)) { resultsModel.setTopUpNum(top_up_datetime);
} else if (segmentModel.getOperator().equals("Seatel")) {
resultsModel = SeatelSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue()); resultsModel = SeatelSentUtils.sentTopUp(automaticQueueModel.getOrder_phone(), automaticQueueModel.getOrder_money().intValue());
//这个不用返回订单num,里面已经做了处理 //这个不用返回订单num,里面已经做了处理
} else { } else {
Paygo24Utils paygo = new Paygo24Utils(); Paygo24Utils paygo = new Paygo24Utils();
String result = paygo.payment(automaticQueueModel.getOrder_phone(), automaticQueueModel.getSegment_id(), automaticQueueModel.getOrder_money()); String result = paygo.payment(automaticQueueModel.getOrder_phone(), automaticQueueModel.getSegment_id(), automaticQueueModel.getOrder_money());
resultsModel = new ResultsModel(); resultsModel = new ResultsModel();
resultsModel.setTip(result);//描述 resultsModel.setTip(result);
resultsModel.setSuccessful(result.equals(Paygo24Utils.SUCCESS)); if (result.equals("SUCCESS")) {
resultsModel.setSuccessful(true);
resultsModel.setTopUpNum(orderNumId); } else {
resultsModel.setSuccessful(false);
}
resultsModel.setTopUpNum(top_up_datetime);
} }
return resultsModel; return resultsModel;
} catch (Exception e) { } catch (Exception var10) {
e.printStackTrace(); var10.printStackTrace();
return null; return null;
} }
} }
...@@ -161,63 +161,58 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService { ...@@ -161,63 +161,58 @@ public class AutomaticCodeServiceImpl implements AutomaticCodeService {
@Override @Override
public void automaticForTackResult(AutomaticQueueModel early, boolean success, String desc, String top_up_num) { public void automaticForTackResult(AutomaticQueueModel early, boolean success, String desc, String top_up_num) {
Timestamp newTime = new Timestamp(System.currentTimeMillis()); Timestamp newTime = new Timestamp(System.currentTimeMillis());
if (success) {//充值成功 Map mapOrder;
OrderModel orderModel;
OrderLogModel orderLogModel;
//充值成功
if (success) {
try { try {
Map<String, Object> mapOrder = automaticQueueMapper.selectOrderByNumber(early.getOrder_num()); mapOrder = this.automaticQueueMapper.selectOrderByNumber(early.getOrder_num());
OrderModel orderModel = (OrderModel) TransformationTools.ToObjectOne(OrderModel.class, mapOrder); orderModel = (OrderModel)TransformationTools.ToObjectOne(OrderModel.class, mapOrder);
orderModel.setState(3); orderModel.setState(3);
orderModel.setPaygo_time(newTime); orderModel.setPaygo_time(newTime);
orderModel.setPaygo_remark(desc); orderModel.setPaygo_remark(desc);
orderModel.setTop_up_num(top_up_num); orderModel.setTop_up_num(top_up_num);
//更新订单表的状态 //更新订单表的状态
currencyMapper.updateTableForMysql(TransformationTools.CreatUpdateMysql(orderModel, NameValue.Table_order, "id", null)); this.currencyMapper.updateTableForMysql(TransformationTools.CreatUpdateMysql(orderModel, NameValue.Table_order, "id", (List)null));
//发送短信通知用户 orderLogModel = new OrderLogModel();
//添加订单日志
OrderLogModel orderLogModel = new OrderLogModel();
orderLogModel.setLog_order_number(early.getOrder_num()); orderLogModel.setLog_order_number(early.getOrder_num());
orderLogModel.setLog_type(3); orderLogModel.setLog_type(3);
orderLogModel.setTime(newTime); orderLogModel.setTime(newTime);
orderLogModel.setLog_content("自动充值-充值成功"); orderLogModel.setLog_content("自动充值-充值成功");
//添加订单操作日志
currencyMapper.AddTableForMysql(TransformationTools.CreatAddMysql(orderLogModel, NameValue.Table_order_log, "id", null));
} catch (Exception e) { //添加订单操作日志
e.printStackTrace(); this.currencyMapper.AddTableForMysql(TransformationTools.CreatAddMysql(orderLogModel, NameValue.Table_order_log, "id", (List)null));
} catch (Exception var10) {
var10.printStackTrace();
} }
} else {//充值失败,转入人工处理 } else {
//充值失败,转入人工处理
try { try {
Map<String, Object> mapOrder = automaticQueueMapper.selectOrderByNumber(early.getOrder_num()); mapOrder = this.automaticQueueMapper.selectOrderByNumber(early.getOrder_num());
OrderModel orderModel = (OrderModel) TransformationTools.ToObjectOne(OrderModel.class, mapOrder); orderModel = (OrderModel)TransformationTools.ToObjectOne(OrderModel.class, mapOrder);
orderModel.setState(4); orderModel.setState(4);
orderModel.setPaygo_remark(desc + "-处理时间:" + newTime); orderModel.setPaygo_remark(desc + "-处理时间:" + newTime);
orderModel.setTop_up_num(top_up_num); orderModel.setTop_up_num(top_up_num);
//更新订单表的状态
currencyMapper.updateTableForMysql(TransformationTools.CreatUpdateMysql(orderModel, NameValue.Table_order, "id", null));
//添加订单日志 //更新订单表的状态
OrderLogModel orderLogModel = new OrderLogModel(); this.currencyMapper.updateTableForMysql(TransformationTools.CreatUpdateMysql(orderModel, NameValue.Table_order, "id", (List)null));
orderLogModel = new OrderLogModel();
orderLogModel.setLog_order_number(early.getOrder_num()); orderLogModel.setLog_order_number(early.getOrder_num());
orderLogModel.setLog_type(4); orderLogModel.setLog_type(4);
orderLogModel.setTime(newTime); orderLogModel.setTime(newTime);
orderLogModel.setLog_content("充值失败,转入人工处理-" + desc); orderLogModel.setLog_content("充值失败,转入人工处理-" + desc);
//添加订单操作日志 //添加订单日志
currencyMapper.AddTableForMysql(TransformationTools.CreatAddMysql(orderLogModel, NameValue.Table_order_log, "id", null)); this.currencyMapper.AddTableForMysql(TransformationTools.CreatAddMysql(orderLogModel, NameValue.Table_order_log, "id", (List)null));
} catch (Exception var9) {
// early.setStatus(-1); var9.printStackTrace();
// currencyMapper.updateTableForMysql(TransformationTools.CreatUpdateMysql(early,NameValue.Table_automatic_queue,"id",null));
} catch (Exception e) {
e.printStackTrace();
} }
} }
//移除自动充值队列中 //移除自动充值队列中
currencyMapper.DeleteDataById(NameValue.Table_automatic_queue, early.getId()); this.currencyMapper.DeleteDataById(NameValue.Table_automatic_queue, early.getId());
} }
@Override @Override
......
package com.library.service.Impl; package com.library.service.Impl;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
...@@ -8,20 +9,9 @@ import com.library.TopUp.mefont.MetfoneSentUtils; ...@@ -8,20 +9,9 @@ import com.library.TopUp.mefont.MetfoneSentUtils;
import com.library.config.NameValue; import com.library.config.NameValue;
import com.library.mapper.CommMapper; import com.library.mapper.CommMapper;
import com.library.mapper.CurrencyMapper; import com.library.mapper.CurrencyMapper;
import com.library.model.AdminModel;
import com.library.model.UserModel;
import com.library.respcode.ServerResponse; import com.library.respcode.ServerResponse;
import com.library.service.AutomaticCodeService;
import com.library.service.CommService; import com.library.service.CommService;
import com.library.util.MSMmethodUtil;
import com.library.util.Paygo24Utils;
import com.library.util.SendEmailTools; import com.library.util.SendEmailTools;
import com.library.util.TransformationTools;
import com.wechat.pay.MD5Util;
import com.wechat.pay.WeChatManager;
import com.wechat.pay.WeChatManager.UserInfo;
import org.apache.http.util.TextUtils; import org.apache.http.util.TextUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -29,13 +19,15 @@ import javax.annotation.Resource; ...@@ -29,13 +19,15 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.sql.Timestamp;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.SimpleTimeZone;
import java.util.TimeZone;
@Service @Service
public class CommServiceImpl implements CommService { public class CommServiceImpl implements CommService {
@Resource @Resource
private HttpServletRequest request; private HttpServletRequest request;
@Resource @Resource
...@@ -43,29 +35,26 @@ public class CommServiceImpl implements CommService { ...@@ -43,29 +35,26 @@ public class CommServiceImpl implements CommService {
@Resource @Resource
private CurrencyMapper currencyMapper; private CurrencyMapper currencyMapper;
@Resource public CommServiceImpl() {
private AutomaticCodeService automaticCodeService; }
@Override @Override
public ServerResponse Recharge() { public ServerResponse Recharge() {
try { try {
return ServerResponse.createByErrorCodeMessage(-1, "无此接口"); return ServerResponse.createByErrorCodeMessage(-1, "无此接口");
} catch (Exception e) { } catch (Exception var2) {
e.printStackTrace(); var2.printStackTrace();
return ServerResponse.createByError(); return ServerResponse.createByError();
} }
} }
@Override
public ServerResponse adminLogin() { public ServerResponse adminLogin() {
return ServerResponse.createByErrorCodeMessage(-1, "无此接口"); return ServerResponse.createByErrorCodeMessage(-1, "无此接口");
} }
@Override @Override
public ServerResponse checkPhoneInSeatel() { public ServerResponse checkPhoneInSeatel() {
String phone = request.getParameter("phone"); String phone = this.request.getParameter("phone");
String json = SeatelSentUtils.checkPhone2(phone); String json = SeatelSentUtils.checkPhone2(phone);
return ServerResponse.createBySuccess(json); return ServerResponse.createBySuccess(json);
} }
...@@ -73,34 +62,25 @@ public class CommServiceImpl implements CommService { ...@@ -73,34 +62,25 @@ public class CommServiceImpl implements CommService {
@Override @Override
public ServerResponse queryAgentFeeInSeatel() { public ServerResponse queryAgentFeeInSeatel() {
String feeJson = SeatelSentUtils.queryAgentFee(); String feeJson = SeatelSentUtils.queryAgentFee();
String tip = ""; String tip = "";
String myAmount = ""; String myAmount = "";
if (!TextUtils.isEmpty(feeJson)) { if (!TextUtils.isEmpty(feeJson)) {
JsonParser jsonParserFee = new JsonParser(); JsonParser jsonParserFee = new JsonParser();
JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject(); JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject();
String codeCheck = jsonObjectFee.get("code") == null ? "" : jsonObjectFee.get("code").getAsString(); String codeCheck = jsonObjectFee.get("code") == null ? "" : jsonObjectFee.get("code").getAsString();
if (!TextUtils.isEmpty(codeCheck) && codeCheck.equals("0")) { if (!TextUtils.isEmpty(codeCheck) && codeCheck.equals("0")) {
//接口查询成功,比较金额大小
if (jsonObjectFee.get("amount") != null) { if (jsonObjectFee.get("amount") != null) {
myAmount = jsonObjectFee.get("amount").getAsString(); myAmount = jsonObjectFee.get("amount").getAsString();
tip += "您当前的余额为:$" + myAmount + ""; tip = tip + "您当前的余额为:$" + myAmount + "";
this.changeTheAmountLog(myAmount, "", "", "", "");
// if (!TextUtils.isEmpty(myAmount)) {
// Map<String, Object> map = new HashMap<>();
// map.put("statel", myAmount);
// commMapper.updateTheBalance(map);
// }
changeTheAmountLog(myAmount, "", "", "", "");
} else { } else {
tip += "获取不到余额信息"; tip = tip + "获取不到余额信息";
} }
} else { } else {
tip += "查询余额失败;结果为:" + feeJson; tip = tip + "查询余额失败;结果为:" + feeJson;
} }
} }
System.out.println(tip); System.out.println(tip);
return ServerResponse.createBySuccess(tip, myAmount); return ServerResponse.createBySuccess(tip, myAmount);
} }
...@@ -108,56 +88,41 @@ public class CommServiceImpl implements CommService { ...@@ -108,56 +88,41 @@ public class CommServiceImpl implements CommService {
@Override @Override
public ServerResponse queryAgentFeeInCellcard() { public ServerResponse queryAgentFeeInCellcard() {
String feeJson = ""; String feeJson = "";
try {
try {
feeJson = CellcardSentUtils.checkBalance(); feeJson = CellcardSentUtils.checkBalance();
String tip = ""; String tip = "";
String myAmount = ""; String myAmount = "";
if (!TextUtils.isEmpty(feeJson)) { if (!TextUtils.isEmpty(feeJson)) {
JsonParser jsonParserFee = new JsonParser(); JsonParser jsonParserFee = new JsonParser();
JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject(); JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject();
if (jsonObjectFee.get("data") != null) { if (jsonObjectFee.get("data") != null) {
JsonObject data = jsonObjectFee.get("data").getAsJsonObject(); JsonObject data = jsonObjectFee.get("data").getAsJsonObject();
String error_message = data.get("error_message") == null ? "" : data.get("error_message").getAsString(); String error_message = data.get("error_message") == null ? "" : data.get("error_message").getAsString();
String error_code = data.get("error_code") == null ? "" : data.get("error_code").getAsString(); String error_code = data.get("error_code") == null ? "" : data.get("error_code").getAsString();
if (!TextUtils.isEmpty(error_code) && error_code.equals("0")) { if (!TextUtils.isEmpty(error_code) && error_code.equals("0")) {
//接口查询成功,比较金额大小
if (data.get("distributor_balance") != null) { if (data.get("distributor_balance") != null) {
myAmount = data.get("distributor_balance").getAsString(); myAmount = data.get("distributor_balance").getAsString();
tip += "您当前的余额为:$" + myAmount + ""; tip = tip + "您当前的余额为:$" + myAmount + "";
this.changeTheAmountLog("", "", myAmount, "", "");
// if (!TextUtils.isEmpty(myAmount)) {
// Map<String, Object> map = new HashMap<>();
// map.put("cellcard", myAmount);
// commMapper.updateTheBalance(map);
// }
changeTheAmountLog("", "", myAmount, "", "");
return ServerResponse.createBySuccess(tip, myAmount); return ServerResponse.createBySuccess(tip, myAmount);
} else {
tip += "获取不到余额信息;" + error_message;
} }
tip = tip + "获取不到余额信息;" + error_message;
} else { } else {
tip += "查询余额失败;结果为:" + feeJson; tip = tip + "查询余额失败;结果为:" + feeJson;
} }
} else { } else {
tip += "解析data为空"; tip = tip + "解析data为空";
} }
} else { } else {
tip += "请求的数据为空"; tip = tip + "请求的数据为空";
} }
System.out.println(tip); System.out.println(tip);
return ServerResponse.createByErrorCodeMessage(3001, tip); return ServerResponse.createByErrorCodeMessage(3001, tip);
} catch (Exception var9) {
var9.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
return ServerResponse.createByErrorCodeMessage(-1, feeJson); return ServerResponse.createByErrorCodeMessage(-1, feeJson);
} }
} }
...@@ -165,133 +130,130 @@ public class CommServiceImpl implements CommService { ...@@ -165,133 +130,130 @@ public class CommServiceImpl implements CommService {
@Override @Override
public ServerResponse checkMyMoneyInMetfone() { public ServerResponse checkMyMoneyInMetfone() {
String feeJson = ""; String feeJson = "";
try {
String refId = getFormatedDateString(7);
String phone = request.getParameter("phone");
// {"status":0,"code":"MSG_SUCCESS","message":"Success","msisdn":null,"accountName":null,"accountType":null,"balances":{"KHR":"498,983","USD":"4,748.00"}} try {
String refId = getFormatedDateString(7.0F);
String phone = "855886402606";
feeJson = MetfoneSentUtils.checkMyMoneyPost(refId, phone); feeJson = MetfoneSentUtils.checkMyMoneyPost(refId, phone);
String tip = ""; String tip = "";
JsonObject data = null; JsonObject data = null;
if (!TextUtils.isEmpty(feeJson)) { if (!TextUtils.isEmpty(feeJson)) {
JsonParser jsonParserFee = new JsonParser(); JsonParser jsonParserFee = new JsonParser();
JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject(); JsonObject jsonObjectFee = jsonParserFee.parse(feeJson).getAsJsonObject();
String status = jsonObjectFee.get("status") == null ? "" : jsonObjectFee.get("status").getAsString(); String status = jsonObjectFee.get("status") == null ? "" : jsonObjectFee.get("status").getAsString();
if (status.equals("0")) { if (status.equals("0")) {
String usd;
if (jsonObjectFee.get("balances") != null) { if (jsonObjectFee.get("balances") != null) {
data = jsonObjectFee.get("balances").getAsJsonObject(); data = jsonObjectFee.get("balances").getAsJsonObject();
if (data != null && data.get("USD") != null) {
usd = data.get("USD").getAsString();
this.changeTheAmountLog("", usd, "", "", "");
}
return ServerResponse.createBySuccess(data); return ServerResponse.createBySuccess(data);
} else {
String message = jsonObjectFee.get("message") == null ? "" : jsonObjectFee.get("message").getAsString();
tip += "" + message;
} }
usd = jsonObjectFee.get("message") == null ? "" : jsonObjectFee.get("message").getAsString();
tip = tip + "" + usd;
} else { } else {
tip += "请求的数据为空"; tip = tip + "请求的数据为空";
} }
} else { } else {
tip += "请求的数据为空"; tip = tip + "请求的数据为空";
} }
return ServerResponse.createByErrorCodeMessage(3001, tip);
} catch (Exception e) { return ServerResponse.createByErrorCodeMessage(3001, tip);
e.printStackTrace(); } catch (Exception var10) {
var10.printStackTrace();
return ServerResponse.createByErrorCodeMessage(-1, feeJson); return ServerResponse.createByErrorCodeMessage(-1, feeJson);
} }
} }
@Override @Override
public ServerResponse checkMyMoney() { public ServerResponse checkMyMoney() {
try { try {
Map<String, Object> map = this.currencyMapper.FindDataById(NameValue.Table_pay_operator_balance, 1);
Map<String, Object> map = currencyMapper.FindDataById(NameValue.Table_pay_operator_balance, 1);
return ServerResponse.createBySuccess(map); return ServerResponse.createBySuccess(map);
} catch (Exception e) { } catch (Exception var2) {
e.printStackTrace(); var2.printStackTrace();
return ServerResponse.createByError(); return ServerResponse.createByError();
} }
} }
@Override @Override
public ServerResponse saveTheEmail() { public ServerResponse saveTheEmail() {
try { try {
String email = request.getParameter("email"); String email = this.request.getParameter("email");
email = URLDecoder.decode(email, "UTF-8"); email = URLDecoder.decode(email, "UTF-8");
System.out.println(email); System.out.println(email);
Map<String, Object> mapUpdate = new HashMap();
Map<String, Object> mapUpdate = new HashMap<>();
mapUpdate.put("email", email); mapUpdate.put("email", email);
int rest = commMapper.updateTheBalance(mapUpdate); int rest = this.commMapper.updateTheBalance(mapUpdate);
return ServerResponse.createBySuccess(rest); return ServerResponse.createBySuccess(rest);
} catch (Exception e) { } catch (Exception var4) {
e.printStackTrace(); var4.printStackTrace();
return ServerResponse.createByError(); return ServerResponse.createByError();
} }
} }
//修改运营商剩余余额记录
private void changeTheAmountLog(String statel, String mefont, String cellcard, String smart, String remark) { private void changeTheAmountLog(String statel, String mefont, String cellcard, String smart, String remark) {
try { try {
Map<String, Object> map = new HashMap();
Map<String, Object> map = new HashMap<>();
if (!TextUtils.isEmpty(statel)) { if (!TextUtils.isEmpty(statel)) {
map.put("statel", statel); map.put("statel", statel);
this.sentMail(statel, "statel");
sentMail(statel, "statel");
} }
if (!TextUtils.isEmpty(mefont)) { if (!TextUtils.isEmpty(mefont)) {
map.put("mefont", mefont); map.put("mefont", mefont);
sentMail(mefont, "mefont"); this.sentMail(mefont, "mefont");
} }
if (!TextUtils.isEmpty(cellcard)) { if (!TextUtils.isEmpty(cellcard)) {
map.put("cellcard", cellcard); map.put("cellcard", cellcard);
sentMail(cellcard, "cellcard"); this.sentMail(cellcard, "cellcard");
} }
if (!TextUtils.isEmpty(smart)) { if (!TextUtils.isEmpty(smart)) {
map.put("smart", smart); map.put("smart", smart);
sentMail(smart, "smart"); this.sentMail(smart, "smart");
} }
if (!TextUtils.isEmpty(remark)) { if (!TextUtils.isEmpty(remark)) {
map.put("remark", remark); map.put("remark", remark);
} }
commMapper.updateTheBalance(map);
} catch (Exception e) { this.commMapper.updateTheBalance(map);
e.printStackTrace(); } catch (Exception var7) {
var7.printStackTrace();
} }
} }
private void sentMail(String money, String operation) { private void sentMail(String money, String operation) {
try { try {
Map<String, Object> map = this.currencyMapper.FindDataById(NameValue.Table_pay_operator_balance, 1);
Map<String, Object> map = currencyMapper.FindDataById(NameValue.Table_pay_operator_balance, 1);
String email = map.get("email") == null ? "" : map.get("email").toString(); String email = map.get("email") == null ? "" : map.get("email").toString();
String lackbalance = map.get("lackbalance") == null ? "" : map.get("lackbalance").toString(); String lackbalance = map.get("lackbalance") == null ? "" : map.get("lackbalance").toString();
if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(lackbalance)) { if (!TextUtils.isEmpty(email) && !TextUtils.isEmpty(lackbalance)) {
if (new BigDecimal(money).compareTo(new BigDecimal(lackbalance)) < 0) { if (money.indexOf(",") != -1) {
money = money.replace(",", "");
}
if ((new BigDecimal(money)).compareTo(new BigDecimal(lackbalance)) < 0) {
String[] els = email.split(","); String[] els = email.split(",");
for (int i = 0; i < els.length; i++) {
for (int i = 0; i < els.length; ++i) {
SendEmailTools.SendMail("充值系统-余额不足" + lackbalance + "美元", operation + "运营商当前剩余余额:" + money, els[i]); SendEmailTools.SendMail("充值系统-余额不足" + lackbalance + "美元", operation + "运营商当前剩余余额:" + money, els[i]);
} }
} }
} }
} catch (Exception var8) {
} catch (Exception e) { var8.printStackTrace();
e.printStackTrace();
} }
}
}
/** /**
* 此函数非原创,从网上搜索而来,timeZoneOffset原为int类型,为班加罗尔调整成float类型 * 此函数非原创,从网上搜索而来,timeZoneOffset原为int类型,为班加罗尔调整成float类型
...@@ -301,13 +263,13 @@ public class CommServiceImpl implements CommService { ...@@ -301,13 +263,13 @@ public class CommServiceImpl implements CommService {
* @return * @return
*/ */
public static String getFormatedDateString(float timeZoneOffset) { public static String getFormatedDateString(float timeZoneOffset) {
if (timeZoneOffset > 13 || timeZoneOffset < -12) { if (timeZoneOffset > 13.0F || timeZoneOffset < -12.0F) {
timeZoneOffset = 0; timeZoneOffset = 0.0F;
} }
int newTime = (int) (timeZoneOffset * 60 * 60 * 1000); int newTime = (int) (timeZoneOffset * 60.0F * 60.0F * 1000.0F);
TimeZone timeZone;
String[] ids = TimeZone.getAvailableIDs(newTime); String[] ids = TimeZone.getAvailableIDs(newTime);
Object timeZone;
if (ids.length == 0) { if (ids.length == 0) {
timeZone = TimeZone.getDefault(); timeZone = TimeZone.getDefault();
} else { } else {
...@@ -315,8 +277,7 @@ public class CommServiceImpl implements CommService { ...@@ -315,8 +277,7 @@ public class CommServiceImpl implements CommService {
} }
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
sdf.setTimeZone(timeZone); sdf.setTimeZone((TimeZone) timeZone);
return sdf.format(new Date()); return sdf.format(new Date());
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment