处理回发从其他网站到我的网站

时间:2018-02-14 14:33:56

标签: node.js express post postback

我正在使用SuperRewards(SR)要在我的网站上为用户进行硬币交易,也许您熟悉SR。 每当交易发生时 SuperRewards向我的服务器发送回发(发布请求),其中包含有关交易和硬币等的信息...
所以我的问题是如何使用 Nodejs Express 来处理从其他网站到我的服务器的回发或发布请求(我真的不知道差异)? Picture 1 App testing
picture 2 app Testing
Code

2 个答案:

答案 0 :(得分:0)

您可以像处理Express应用程序的任何其他请求一样处理它。由于这是GET请求,因此您将定义GET路由。

根据Fields and Formats部分,您可以找到相当多的查询字符串。知道我们可以做到以下几点:

app.get('/super-rewards', async (req, res) => {
  // `new` is a reserved keyword, so we can't use `new` as a variable name.
  const newCurrency = req.query['new']

  const {
    id,
    uid,
    oid,
    total,
    sig
  } = req.query
})

此外,文档指出sig应与secret key的MD5哈希匹配,如果我正确理解的话。所以一个完整的例子就是:

const crypto = require('crypto')
const express = require('express')

const app = express()

app.get('/super-rewards', async (req, res) => {
  // `new` is a reserved keyword, so we can't use `new` as a variable name.
  const newCurrency = req.query['new']

  const {
    id,
    uid,
    oid,
    total,
    sig
  } = req.query

  const secretHash = crypto.createHash('md5').update(process.env.SECRET_KEY).digest('hex')
  if (secretHash !== sig) {
    throw new Error('Invalid transaction')
  }
})

除此之外,它是GET请求,因为文档明确指出:

  

使用HTTP GET请求(...)

将回发从我们的服务器发送到您的服务器

答案 1 :(得分:0)

我联系了支持团队,他们告诉我必须使用公共域而不是本地主机,这就是为什么它不起作用所以问题解决了,谢谢你的时间:))