我即将在弹性豆茎云上上线一个普通的应用程序,上面有多个ec2实例,所以我遇到了一个问题:
目前,我正在使用paypal node SDK销售活动门票。我执行payment.create并传递此transaction对象:
transactions: [{
amount:{
total: req.headers.amount,
currency:'AUD'
},
description:'eventID: ' + req.headers.eventid + ', userID: ' + req.headers.userid
}]我在服务器中创建了一个关联数组来缓存eventid和userid,并使用paypal事务ID作为键,以便当paypal返回确认支付成功时,我知道需要在数据库中更新哪个用户和哪个事件。
如果我转到云,如果HTTP重定向到一个不同的ec2实例,这个方法将失败,因为那个关联数组将在不同的机器上。理想的解决方案是能够将eventid和userid传递给paypal,并让他们将其传回给我,有没有办法在他们的请求回调中访问事务/描述数据,或者是否有其他好的方法来做到这一点?
发布于 2017-03-12 06:53:26
或者在负载均衡器中使用enable sticky sessions,或者开始将数据存储在某个地方,比如所有服务器共享的Redis cache。
发布于 2017-03-12 07:46:38
我希望使用paypal.payment描述字符串来访问它们,但我找到了一个适合我的目的的简单解决方案,我将这两个字符串传递到paypal return_url中,然后在返回时与req.query.e和req.query.u一起使用:
redirect_urls: {
return_url: config.baseUrl + '/pay/payment?e='+req.headers.eventid+'&u='+req.headers.userid,
cancel_url: config.baseUrl + '/'
},https://stackoverflow.com/questions/42741603
复制相似问题