|
|
@@ -3,6 +3,8 @@ package com.izouma.nineth;
|
|
|
import com.alibaba.excel.EasyExcel;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
+import com.alipay.api.AlipayApiException;
|
|
|
+import com.alipay.api.internal.util.AlipaySignature;
|
|
|
import com.github.kevinsawicki.http.HttpRequest;
|
|
|
import com.google.common.base.Splitter;
|
|
|
import com.izouma.nineth.config.Constants;
|
|
|
@@ -15,6 +17,7 @@ import com.izouma.nineth.dto.SandPaySettle;
|
|
|
import com.izouma.nineth.dto.UserWithdraw;
|
|
|
import com.izouma.nineth.service.UserService;
|
|
|
import com.izouma.nineth.utils.AESEncryptUtil;
|
|
|
+import com.izouma.nineth.utils.DateTimeUtils;
|
|
|
import com.izouma.nineth.utils.SnowflakeIdWorker;
|
|
|
import com.izouma.nineth.utils.TokenUtils;
|
|
|
import com.izouma.nineth.web.BaseController;
|
|
|
@@ -72,11 +75,19 @@ import java.math.BigInteger;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
import java.nio.file.Files;
|
|
|
+import java.nio.file.Path;
|
|
|
import java.nio.file.Paths;
|
|
|
+import java.security.KeyFactory;
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
+import java.security.PrivateKey;
|
|
|
+import java.security.PublicKey;
|
|
|
+import java.security.spec.InvalidKeySpecException;
|
|
|
+import java.security.spec.PKCS8EncodedKeySpec;
|
|
|
+import java.security.spec.X509EncodedKeySpec;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.DecimalFormatSymbols;
|
|
|
import java.text.NumberFormat;
|
|
|
+import java.time.LocalDateTime;
|
|
|
import java.util.List;
|
|
|
import java.util.*;
|
|
|
import java.util.concurrent.ExecutorService;
|
|
|
@@ -627,7 +638,65 @@ public class CommonTest {
|
|
|
}
|
|
|
|
|
|
@Test
|
|
|
- public void match() {
|
|
|
- System.out.println(new BCryptPasswordEncoder(4).encode("569905Aa"));
|
|
|
+ public void match() throws NoSuchAlgorithmException, InvalidKeySpecException, IOException {
|
|
|
+ byte[] byteKey = java.util.Base64.getDecoder().decode(Files.readAllBytes(Path.of("/Users/drew/Downloads/应用公钥1024.txt")));
|
|
|
+ PublicKey publicKey = KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(byteKey));
|
|
|
+ System.out.println(publicKey);
|
|
|
+ byte[] bytePriv = java.util.Base64.getDecoder().decode(Files.readAllBytes(Path.of("/Users/drew/Downloads/应用私钥1024.txt")));
|
|
|
+ PrivateKey privKey = KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(bytePriv));
|
|
|
+ System.out.println(privKey);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void alih5() throws IOException, AlipayApiException {
|
|
|
+ Map<String, String> params = new HashMap<>();
|
|
|
+ String mer_no = "664403000025502";
|
|
|
+ String create_time = DateTimeUtils.format(LocalDateTime.now(), "yyyyMMddHHmmss");
|
|
|
+ String expire_time = DateTimeUtils.format(LocalDateTime.now().plusMinutes(3), "yyyyMMddHHmmss");
|
|
|
+ String create_ip = "172_12_12_2";
|
|
|
+ String goods_name = "话费充值";
|
|
|
+ String store_id = "100001";
|
|
|
+ String product_code = "01020002";
|
|
|
+ String clear_cycle = "0"; //不参与签名
|
|
|
+ String meta_option = "[{\"s\":\"Android\",\"n\":\"绿洲宇宙\",\"id\":\"vip.raex.nft\",\"sc\":\"wzsc://\"},{\"s\":\"IOS\",\"n\":\"\",\"id\":\"\",\"sc\":\"\"}]"; //不参与签名
|
|
|
+ String jump_scheme = "sandcash://scpay";
|
|
|
+ String sign_type = "RSA";
|
|
|
+ String order_amt = "0.01";
|
|
|
+ String notify_url = "https://ordertest.raex.vip/sand";
|
|
|
+ String return_url = "https://test.raex.vip/9th/home";
|
|
|
+
|
|
|
+ params.put("mer_no", mer_no);
|
|
|
+ params.put("create_time", create_time);
|
|
|
+ params.put("expire_time", expire_time);
|
|
|
+ params.put("create_ip", create_ip);
|
|
|
+ params.put("goods_name", goods_name);
|
|
|
+ params.put("store_id", store_id);
|
|
|
+ params.put("product_code", product_code);
|
|
|
+ params.put("jump_scheme", jump_scheme);
|
|
|
+ params.put("sign_type", sign_type);
|
|
|
+ params.put("order_amt", order_amt);
|
|
|
+ params.put("notify_url", notify_url);
|
|
|
+ params.put("return_url", return_url);
|
|
|
+
|
|
|
+ AlipaySignature.rsaSign(params, Files.readString(Path.of("/Users/drew/Downloads/应用公钥1024.txt")), "UTF-8");
|
|
|
+
|
|
|
+ String url = "https://cash.sandgate.cn/h5/?version=10&mer_no=664403000025502" +
|
|
|
+ "&mer_order_no=" + new SnowflakeIdWorker(1, 1).nextId() +
|
|
|
+ "&create_time=20220431134259" +
|
|
|
+ "&expire_time=20200924164259" +
|
|
|
+ "&order_amt=0.03" +
|
|
|
+ "¬ify_url=http%3A%2F%2Ftest%2Fnotify" +
|
|
|
+ "&return_url=http%3A%2F%2F192.168.13.104%3A8081%2Ftest%2Freturn" +
|
|
|
+ "&create_ip=172_12_12_2" +
|
|
|
+ "&goods_name=alipay" +
|
|
|
+ "&store_id=100001" +
|
|
|
+ "&product_code=01020002" +
|
|
|
+ "&clear_cycle=0" +
|
|
|
+ "&pay_extra=" +
|
|
|
+ "&meta_option=%5B%7B%22s%22%3A%22Android%22%2C%22n%22%3A%22wxDemo%22%2C%22id%22%3A%22com.pay.paytypetest%22%2C%22sc%22%3A%22com.pay.paytypetest%22%7D%5D" +
|
|
|
+ "&accsplit_info=N" +
|
|
|
+ "&jump_scheme=sandcash://scpay" +
|
|
|
+ "&sign_type=RSA&sign=DD9F3FF71AC20647C9A1F50EDA24AC94#/hippoh5";
|
|
|
+
|
|
|
}
|
|
|
}
|