xiongzhu 4 anos atrás
pai
commit
33f98ab846
1 arquivos alterados com 71 adições e 2 exclusões
  1. 71 2
      src/test/java/com/izouma/nineth/CommonTest.java

+ 71 - 2
src/test/java/com/izouma/nineth/CommonTest.java

@@ -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" +
+                "&notify_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";
+
     }
 }