使用.PFX证书的“对于UInt64,值太大或太小”

时间:2019-01-12 20:11:23

标签: asp.net certificate

我正在使用Webpay,这是智利最常用的接受信用卡的支付平台。过去(在4个网站上)我已经成功地做到了,但是在我最近的一次上,事情并没有按计划进行。两周过去了,我和Webpay的支持人员之间也收到了很多邮件,但我没有移动一厘米。

要使用此系统,我正在使用他们创建的库,这是两个步骤:第一个是“集成”,使用通用证书,我顺利通过了这一步骤。 然后是“生产”步骤,我需要生成.key .csr和.pfx证书。我像在使用Win64 OpenSSL found here之前通过以下命令所做的那样:

openssl genrsa -out 597034189528.key 2048

openssl req -new -key 597034189528.key -out 597034189528.csr

openssl x509 -req -days 1460 -in 597034189528.csr -signkey 597034189528.key -out 597034189528.crt

openssl pkcs12 -export -out 597034189528.pfx -inkey 597034189528.key -in 597034189528.crt

但是当使用生成的.PFX并运行代码时,我收到一条错误消息,提示“对于UInt64,值太大或太小” 。这时在调用库时会发生

wsInitTransactionOutput result = webpay.getNormalTransaction().initTransaction(amount, buyOrder, sessionId, urlReturn, urlFinal);

从那时起,我尝试再次生成并重新生成.PFX(使用Win64 OpenSSL的不同版本),但是它并没有改变Webpay的支持,一直说证书有问题。 有人遇到过类似的证书问题吗?

如果有人想尝试,请随时这样做。 I uploaded here他们正在提供的库。在ZIP文件中的某处寻找transbank.net并运行“ webpay Normal”交易。我得到这个:

Error message and project

在这个阶段我是盲人,我想解决的方法是如此明显,以至于我看不到它。

1 个答案:

答案 0 :(得分:0)

解决了!

这花了一些时间,但我却深究了这个问题。

我最初生成的证书是使用最新版本的OpenSSL(当时的版本为1.1.0)创建的。 Transbank的库(WebPay的创建者)期望的证书必须使用OpenSSL 1.0.x版本生成(序列号的大小不同)。我再次使用OpenSSL 1.0.2q生成了证书:该库运行正常,付款顺利。我向提供商建议通过指定OpenSSL的版本来修订文档。