3
3
import com .pingplusplus .Pingpp ;
4
4
5
5
import java .math .BigInteger ;
6
+ import java .net .URL ;
6
7
import java .security .SecureRandom ;
7
8
8
9
/**
@@ -30,6 +31,8 @@ public class Main {
30
31
// 你生成的私钥路径
31
32
private final static String privateKeyFilePath = "res/your_rsa_private_key_pkcs8.pem" ;
32
33
34
+ private final static String verifyKeyFilePath = "pingpp_public_key.pem" ;
35
+
33
36
protected static String projectDir ;
34
37
35
38
public static void main (String [] args ) throws Exception {
@@ -43,12 +46,15 @@ public static void main(String[] args) throws Exception {
43
46
// 设置私钥路径,用于请求签名
44
47
//Pingpp.privateKeyPath = projectDir + privateKeyFilePath;
45
48
46
- /**
49
+ /*
47
50
* 或者直接设置私钥内容
48
- Pingpp.privateKey = "... PKCS8私钥内容字符串 ...";
51
+ * Pingpp.privateKey = "... PKCS8私钥内容字符串 ...";
49
52
*/
50
53
Pingpp .privateKey = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDHYyS3FwoESp1hGLYiBhy6k9Ag3lzGCIEvm50IIEkE0Ftc9qq44TWqyl+EHUpTMdcBOcI42JLO5stwFOfCLa3PQStEJ4llIRFEKlsrHh67pvWd5RNaSBrvGlnFY40S+SZmjk2WF/h9dE9Ric79t0YI0alD8dIl9Yu3OaEKo7VonBWFwOYMxjPhtORlq+EUF1XJd//yftQrKWTTd7KaUonWzBCl4VzFop/OyTWYlTuZz3eYJaNpH5VaQ1vDgBAcPIeBvMf7NgBHMKW6LLmFd2LEYQ/6I7hkGTjysSzWEpO8bPWT6OEsJ2R2kFGOrSkr+G2MDcJ7ykXYAmz5+A3plS6ZAgMBAAECggEAVrgwR9GlcahiOtDcpn+yDxQq+aC9CQS561LrQZWJLKbSleRS7IZHKTlLwdJbeUO8F7RfXQoVEBghc2YkRrhHWFUn1ES95VY0hElHzcET7Nn5CeuQNzwVOtljIg7iVNY4dXJ/HEDguu/Tb8tYU9FajItj60FJ/WiGk/JksJPzWsOCVPVniy9fTbTLy1e+dCpCI6OXirtm7hvbodRNDjree0wSEzm7vL0wVzEZFo6kX+ABGUwaoO7pPyH+hgyI5Iuhc65NHsHzTJpf8yNFl9QGhkxvm2Ff2oEtDt1idOTBrHB6tg+ti9Ctb2+2yzBnk14hsSYJnKitR7wM6ZCFPX4eYQKBgQD+JAREeFkodec/SC+GX+4Q4Y68uMPkfUPrMKXM4cyY5wgXk64RBvRVxIxX7x6Y3tIKn9v8tWAprbsyVr15eb4RcAFEVwjuoZixhd9sIPsRhfdNolKn/fSPIsHL4ywcJMSIt7KVKHuQeqBNHy0o0PxQjNej1ozsmrAWqV55cbKHswKBgQDI2JQRTPIEC/2y6LdmBVhGJW9OKWTYdVNjq7rX+Yw4uxOtfd5hBqpvgZEklKEk72aazFdEcERlAm9SqoX09qk6zK/wcq4Xn5Q/qy8ecmjuyf2AK9X+HUdMerMVxhK9RpeevKYP/RO2F/wIN64anlQVYygVkXXgdOvWhBE4YABKgwKBgDRtmbPGYB5ItHwJmERQZfx1i8zDESaB8RED6DBsJJkmkDTM8ovws1c+RPWfDuDalto6QFfR0xTGEmhAHLaCtwNB6AEBM4aHL8jvpTfZVfI3gN0zL3oYmestcG1vYBouO504yE6dG2Ci6479b4OMGYFEjPfvuwLUpp8GMcc7/WihAoGANCp8mtm/ammq5VMof2kX+nAyrrx1ovsmQ5cRGpOIZhvBCqjMn6rZjci7aCLqj+tWXRKCABagzROK0o/T50JBxjHv6KYArcYW/Up7HI9ezdbM7wNzu2LjZ+veo+MkbuDs9J/PCgwTmJI2NfQwVl2VPVDZ0nBLi5cSwk7fIiNdL/0CgYEAtECmC1QDs53Di2MIsa/Fe4sWfJGSDqEWqhcA/aPwf1skM6VJJXBBMV1qFtwgO1AlLnu9dQYra6ylsUoubVYIXM9XK7EMhbqi57+Q75jHFTc0DnzOTyho5Gp4Ddi8dztmZGNWdWTGdeMqh+svqMXkD6VdJeddyGu/Zlgj7Wk6whU=" ;
51
54
55
+ //(可选,推荐设置)设置响应验证公钥,用于验证响应是否真实有效;不设置或设置密钥错误将不验签
56
+ Pingpp .setVerifyPublicKeyPath (getResPath (verifyKeyFilePath ));
57
+
52
58
// Charge 示例
53
59
ChargeExample .runDemos (appId );
54
60
@@ -82,13 +88,21 @@ public static void main(String[] args) throws Exception {
82
88
CustomsExample .runDemos (appId );
83
89
}
84
90
85
- private static SecureRandom random = new SecureRandom ();
91
+ private static final SecureRandom random = new SecureRandom ();
86
92
87
93
public static String randomString (int length ) {
88
94
String str = new BigInteger (130 , random ).toString (32 );
89
95
return str .substring (0 , length );
90
96
}
91
97
98
+ public static String getResPath (String subPath ) {
99
+ if (subPath == null ) {
100
+ throw new NullPointerException ();
101
+ }
102
+ URL resource = Thread .currentThread ().getContextClassLoader ().getResource (subPath );
103
+ return resource != null ? resource .getPath () : subPath ;
104
+ }
105
+
92
106
public static int currentTimeSeconds () {
93
107
return (int ) (System .currentTimeMillis () / 1000 );
94
108
}
0 commit comments