具有SSL 128位的HTTP请求

时间:2019-07-16 10:24:03

标签: node.js ssl request

使用Ogone Direct Paiment在webapp上工作时,适用于旧帐户的代码可以正常工作,但是新帐户却出现相同的错误。

我已经添加了调用和答案,也许有人习惯了Ogone API。

该错误似乎告诉我我必须进行SSL 128位调用,但是我不知道该怎么做。我已经尝试了很多事情,包括userAgent,自己使用openssl命令生成证书,但没有结果。

  • 如果您熟悉Ogone,请告诉我如何解决它或如何更改配置以允许简单查询。
  • 否则,您能否解释一下如何使用nodeJS模块request进行SSL 128位调用?

请求通话

const request= require('request');
const datas = {
    url : 'https://secure.ogone.com/ncol/prod/orderdirect_utf8.asp',
    method:"POST",
    form: 'queryUrlEncoded',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
};

request(datas, (err, response, body) => {
    err && console.error(err);
    body && console.log(body);
});

已收到回复

<?xml version="1.0"?>
<ncresponse [...] NCSTATUS="5" NCERROR="50001115" NCERRORPLUS="SSL 128 required">
</ncresponse>

1 个答案:

答案 0 :(得分:1)

您正在使用的模块具有应用SSL的功能,但是为此,您将需要带有密钥的证书,长话短说,是的,这是可能的。

const fs = require('fs')
    , path = require('path')
    , certFile = path.resolve(__dirname, 'ssl/client.crt')
    , keyFile = path.resolve(__dirname, 'ssl/client.key')
    , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem')
    , request = require('request');

const options = {
    url: 'https://api.some-server.com/',
    cert: fs.readFileSync(certFile),
    key: fs.readFileSync(keyFile),
    passphrase: 'password',
    ca: fs.readFileSync(caFile)
};

request.get(options);

从文档中复制。

Click Here for Documentation