簡體   English   中英

處理從其他網站到我網站的回發

[英]handling Postbacks From other website to My website

我正在使用SuperRewards (SR)為我網站上的用戶進行硬幣交易,也許您對SR很熟悉。 每當交易發生時, SuperRewards都會向我的服務器發送回發 (發布請求),其中包含有關交易和硬幣等的信息...
所以我的問題是如何使用Node.js Express處理其他網站到我服務器的回發或發帖請求(我真的不知道這有什么不同)?
圖片1應用測試
圖片2應用測試

您將像處理Express應用程序中的任何其他請求一樣處理它。 由於這是一個GET請求,因此您將定義一個GET路由。

根據“ 字段和格式”部分,您獲得了很多查詢字符串。 知道我們可以執行以下操作:

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請求將回發從我們的服務器發送到您的服務器(...)

我聯系了支持團隊,他們告訴我我必須使用公共域而不是本地主機,這就是為什么它無法正常工作,因此問題得以解決,感謝您的寶貴時間:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM