我正在使用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”交易。我得到这个:
在这个阶段我是盲人,我想解决的方法是如此明显,以至于我看不到它。
答案 0 :(得分:0)
解决了!
这花了一些时间,但我却深究了这个问题。
我最初生成的证书是使用最新版本的OpenSSL(当时的版本为1.1.0)创建的。 Transbank的库(WebPay的创建者)期望的证书必须使用OpenSSL 1.0.x版本生成(序列号的大小不同)。我再次使用OpenSSL 1.0.2q生成了证书:该库运行正常,付款顺利。我向提供商建议通过指定OpenSSL的版本来修订文档。