簡體   English   中英

使用socket.io和nodejs的支付網關

[英]payment gateway using socket.io and nodejs

我正在開發一個帶有節點/ express(服務器端)和angular js(客戶端)的支付網關(具有2要素授權, 2FA )。

來自客戶端->服務器的通信可以通過POST請求完成,但是我希望來自服務器->客戶端的通信通過socket.io

現在,對於發起付款的新用戶,將從客戶端向服務器發送POST請求,將處理數據並發送回響應。 由於非常特定的原因,無法將響應作為已接收的POST請求中res一部分發送。

app.post('/receive', function(req,res){
   data = req.body
   res.send('success')
   // do something with the data
   // Details regarding 2FA will be sent later via socket.io
}

經過一些處理后,有關兩因素授權的數據將發送到客戶端。

io.on('2fa', {name:name, oneTimePassword:qwerty //and additional details})

我可以從客戶端收聽2fa通道,但是在此發出的每個消息都將傳遞給所有客戶端。 我需要一種僅向發起特定付款過程的特定客戶發送消息的方法。

每筆交易都將使用ECDH進行加密。 UUID將可用於交易,啟動客戶以及完成付款的訂單號。

感謝上述指導。

Socket.io有房間。 假設您只想讓買賣雙方聽到認證結果,然后將它們放入房間並將您的消息發送到房間本身。 客戶端不會改變。 您只需從客戶端socket.emit到服務器,服務器就會將客戶端與所有其他適當的參與方放到一個會議室中,並且所有后續通信將僅發送到會議室,而不是通道2fa。

這來自我開發的html5多人游戲,當客戶端加入游戲室時,這是在服務器端發生的情況:

socket.on('joingame', function(data){
  if(livingplayers[data.room] && livingplayers[data.room][data.id]){
    socket.emit('joinfail', 'That name is taken');
  } else {
    socket.join(data.room);
    socket.emit('joingame', data);
  }
});

因此,正如您在此處看到的那樣,我將客戶加入了游戲,並且我從同一渠道進行了回復,並告知客戶他成功加入了游戲,在服務器端,我將客戶放入了他加入的房間。 任何后續的游戲中動作都只會廣播到客戶剛剛加入的房間

暫無
暫無

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

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