首页 > 解决方案 > POST 获取交易令牌时收到 400 错误请求

问题描述

我正在尝试将我们的网站Converge APIHosted Payments Page. 这是他们文档的链接https://developer.elavon.com/#/api/eb6e9106-0172-4305-bc5a-b3ebe832f823.rcosoomi/versions/5180a9f2-741b-439c-bced-5c84a822f39b.rcooomi/documents?converge -integration-guide/book/integration_methods/../../book/integration_methods/hosted_pa​​yments.html

我在通过从他们的 API 端点请求事务令牌的第一步时遇到了麻烦。POST我使用正确的参数和 URL 从我的服务器发送请求axios,但是当我尝试并POST得到400 Bad Request. 当我提出相同的请求时,POSTMAN我会得到一个200 response交易令牌。我与他们的开发人员交谈,他们说我所做的一切都是正确的,而且在我的代码中似乎没有什么奇怪的地方,所以即使他们也对我为什么不能POST向他们的端点发出请求感到困惑。显然,我的代码中有一些他们的 API 不喜欢的东西,否则我不会在这里试图找到答案。

这是我发出 POST 请求的方式:

app.get('/converge_token_req', (request, response) => {

    let params = {
        ssl_merchant_id: '*****',
        ssl_user_id: '*****',
        ssl_pin: '*****',
        ssl_transaction_type: 'ccsale',
        ssl_amount: '1.00'
    }

    axios.post('https://api.demo.convergepay.com/hosted-payments/transaction_token', params, {
        headers: { 'Content_Type' : 'application/x-www-form-urlencoded' }
    }).then((res) => {
        response.send(res.data)
    }).catch((error) => {
        console.log('there was an error getting transaction token')
        response.send(error.message)
    })

})

以下是请求标头:

在此处输入图像描述

老实说,我没有想法尝试。开发人员说一切看起来都很好,但我无法成功向他们的 API 发出请求。如果有人对此有任何想法,那就太好了。谢谢!

标签: node.jsexpressaxios

解决方案


下面的代码对我有用:

app.get('/converge_token_req', (request, response) => {

let params = {
    ssl_merchant_id: '*****',
    ssl_user_id: '*****',
    ssl_pin: '*****',
    ssl_transaction_type: 'ccsale',
    ssl_amount: '1.00'
}

  axios({
    method: 'post',
    url: 'https://api.demo.convergepay.com/hosted-payments/transaction_token',
    params: params
    }).then((res) => { response.send(res.data)
    }).catch((error) => {
    console.log('there was an error getting transaction token: ', 
    error)
  })

})

推荐阅读