【发布时间】:2016-08-23 09:25:31
【问题描述】:
我正在创建一项服务,用户必须为某些产品付费。现在,我正在为交易部分苦苦挣扎。
如果用户进入结帐页面,我正在创建交易。支付网关有以下 URL:
ReturnUrl -> The URL the costumer is being redirected to after a succesfull payment (after clicking "Back to Webshop")
NotifyUrl -> The URL (server-to-server call) thats being called when the user finishes his payment, when the costumer is being redirected back via ReturnUrl
CallbackUrl -> The URL thats being called when the user closes his browser after a succesfull payment, without clicking the "Back to Webshop" button, and hence not being redirected via ReturnUrl
现在,我正在努力解决如何在事务返回 NotifyUrl 或 CallbackUrl 时安全地将事务设置为完成。 当我将事务放入数据库时,我正在生成一个令牌,因此未经授权的用户无法修改/更改任何内容。但是我正在将带有 POST 的令牌发送到我的支付提供商,这意味着如果他们知道将 GET 请求发送到的 URL 以及令牌 en transaction_id 等所有信息,他们可以在那里浏览而无需实际支付并欺骗我的服务器思考请求来自我的付款处理器。
我将如何正确地做到这一点?
【问题讨论】:
-
我不确定我能否遵循您的逻辑。某人究竟可以浏览什么以及在哪里浏览?您是否说您的交易 ID 是串行的(因此有人可以弄清楚)并且您没有检查请求是否来自您的支付提供商?
标签: php e-commerce