处理从其他网站到我的网站的回传
handling Postbacks From other website to My website
我正在使用 SuperRewards (SR) 为我网站上的用户进行硬币交易,也许您对 SR 很熟悉。
每当交易发生时 SuperRewards 都会向我的服务器发送一个回传(Post 请求),其中包含有关交易和硬币等的信息...
所以我的问题是如何使用处理从其他网站到我的服务器的Post返回或Post请求(我真的不知道差异) Node.js Express ?
Picture 1 App testing
picture 2 app Testing
Code
您可以像处理任何其他发送到您的 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
请求,因为文档明确指出:
Postbacks are sent from our server to yours using a HTTP GET request (...)
我联系了支持团队,他们告诉我我必须使用 public 域而不是本地主机,这就是它无法正常工作的原因,所以问题已解决,感谢您抽出时间:)
我正在使用 SuperRewards (SR) 为我网站上的用户进行硬币交易,也许您对 SR 很熟悉。
每当交易发生时 SuperRewards 都会向我的服务器发送一个回传(Post 请求),其中包含有关交易和硬币等的信息...
所以我的问题是如何使用处理从其他网站到我的服务器的Post返回或Post请求(我真的不知道差异) Node.js Express ?
Picture 1 App testing
picture 2 app Testing
Code
您可以像处理任何其他发送到您的 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
请求,因为文档明确指出:
Postbacks are sent from our server to yours using a HTTP GET request (...)
我联系了支持团队,他们告诉我我必须使用 public 域而不是本地主机,这就是它无法正常工作的原因,所以问题已解决,感谢您抽出时间:)