没有这样的提供商:SunJCE--Paytm 校验和生成器 Android
No such provider: SunJCE--Paytm Checksum genrator Android
我正在尝试为我们的 android 应用程序集成 paytm。
新的 PaytmOrder 对象需要校验和哈希作为参数。
为了生成校验和哈希,我们使用了 paytm 推荐的 jar 文件。
https://github.com/Paytm-Payments/Paytm_Google_App_Engine_Kit
我们已将此 jar 添加到我们的 lib 文件夹中。
implementation files('src/main/libs/pg-checksum-1.0-jar-with-dependencies.jar')
这是用于在我们的 android 应用程序中生成校验和哈希的代码。
try{
String checkSum = CheckSumServiceHelper.getCheckSumServiceHelper().genrateCheckSum("7MTqfy715ot231CT", convertToTreeMap(paramMap));
paramMap.put("CHECKSUMHASH" , checkSum);
System.out.println("Paytm Payload: "+ paramMap);
}catch(Exception e) {
e.printStackTrace();
}
但是我们在尝试获取校验和哈希时遇到以下异常。
System.err: java.security.NoSuchProviderException: No such provider: SunJCE
2020-01-01 11:32:33.581 26112-26112 W/System.err: at javax.crypto.Cipher.getInstance(Cipher.java:671)
2020-01-01 11:32:33.581 26112-26112 W/System.err: at com.paytm.pg.crypto.AesEncryption.encrypt(AesEncryption.java:34)
2020-01-01 11:32:33.581 26112-26112/System.err: at com.paytm.pg.merchant.CheckSumServiceHelper.genrateCheckSum(CheckSumServiceHelper.java:53)
当我开始从我的应用程序服务器生成校验和哈希时,我能够解决这个问题。
发生上述问题是因为我试图在本地 android 中生成校验和哈希。
我解决了在 Android 端生成校验和的问题。
下载此 jar (paytm-checksum-1.1.jar) 并正确 de-compile ,在您的项目中包含所有 java class 替换此行在 AesEncryption class.And 使用 Base64Encoder jar
这 (sun.misc.BASE64Decoder.jar).
//Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING", "SunJCE");// replace this
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); // by this line
我正在尝试为我们的 android 应用程序集成 paytm。
新的 PaytmOrder 对象需要校验和哈希作为参数。
为了生成校验和哈希,我们使用了 paytm 推荐的 jar 文件。
https://github.com/Paytm-Payments/Paytm_Google_App_Engine_Kit
我们已将此 jar 添加到我们的 lib 文件夹中。
implementation files('src/main/libs/pg-checksum-1.0-jar-with-dependencies.jar')
这是用于在我们的 android 应用程序中生成校验和哈希的代码。
try{
String checkSum = CheckSumServiceHelper.getCheckSumServiceHelper().genrateCheckSum("7MTqfy715ot231CT", convertToTreeMap(paramMap));
paramMap.put("CHECKSUMHASH" , checkSum);
System.out.println("Paytm Payload: "+ paramMap);
}catch(Exception e) {
e.printStackTrace();
}
但是我们在尝试获取校验和哈希时遇到以下异常。
System.err: java.security.NoSuchProviderException: No such provider: SunJCE
2020-01-01 11:32:33.581 26112-26112 W/System.err: at javax.crypto.Cipher.getInstance(Cipher.java:671)
2020-01-01 11:32:33.581 26112-26112 W/System.err: at com.paytm.pg.crypto.AesEncryption.encrypt(AesEncryption.java:34)
2020-01-01 11:32:33.581 26112-26112/System.err: at com.paytm.pg.merchant.CheckSumServiceHelper.genrateCheckSum(CheckSumServiceHelper.java:53)
当我开始从我的应用程序服务器生成校验和哈希时,我能够解决这个问题。
发生上述问题是因为我试图在本地 android 中生成校验和哈希。
我解决了在 Android 端生成校验和的问题。
下载此 jar (paytm-checksum-1.1.jar) 并正确 de-compile ,在您的项目中包含所有 java class 替换此行在 AesEncryption class.And 使用 Base64Encoder jar 这 (sun.misc.BASE64Decoder.jar).
//Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING", "SunJCE");// replace this
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING"); // by this line