我正在使用SuperRewards(SR)要在我的网站上为用户进行硬币交易,也许您熟悉SR。
每当交易发生时 SuperRewards向我的服务器发送回发(发布请求),其中包含有关交易和硬币等的信息...
所以我的问题是如何使用 Nodejs Express 来处理从其他网站到我的服务器的回发或发布请求(我真的不知道差异)?
Picture 1 App testing
picture 2 app Testing
Code
答案 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)
我联系了支持团队,他们告诉我必须使用公共域而不是本地主机,这就是为什么它不起作用所以问题解决了,谢谢你的时间:))