【问题标题】:No such provider: SunJCE--Paytm Checksum genrator Android没有这样的提供者:SunJCE--Paytm Checksum generator Android
【发布时间】:2020-04-20 09:07:46
【问题描述】:

我正在尝试为我们的 Android 应用集成 paytm。

新的 PaytmOrder 对象需要 checksumhash 作为参数。

为了生成校验和哈希,我们使用的是 paytm 推荐的 jar 文件。

https://github.com/Paytm-Payments/Paytm_Google_App_Engine_Kit

我们已经在我们的 lib 文件夹中添加了这个 jar。

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)

【问题讨论】:

  • 你有解决办法吗?
  • @ManishKumawat 查看我的答案。尝试从您的应用程序服务器获取哈希映射值。不要尝试在本地生成校验和哈希

标签: android payment-gateway paytm


【解决方案1】:

我解决了在 Android 端生成校验和的问题。

下载这个jar(paytm-checksum-1.1.jar)并正确反编译,在你的项目中包含所有java类替换AesEncryption类中的这一行。并使用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

要了解更多,请关注此网址https://medium.com/@dharmmobiledev/paytm-checksum-generate-in-android-nosuchproviderexception-no-such-provider-sunjce-e02c216557a5

【讨论】:

  • 是的,它工作正常。但我们不想提取整个库。相反,我们可以创建一个新类 PaytmChecksumNew 并将整个 PaytmChecksum 类复制到我们的新类中,然后更新上面的行就足够了。
【解决方案2】:

当我开始从我的应用程序服务器生成校验和哈希时,我能够解决这个问题。
出现上述问题是因为我试图在本地生成 android 中的校验和哈希。

【讨论】:

  • 那么有没有办法在android中生成校验和?其实Paytm文档代码说可以在android中生成
  • @ManishKumawat 是的,我也相信文档并且在空中捕捉尾巴。所以请不要这样做。从服务器端获取详细信息并轻松完成工作,兄弟
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-12
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多