我们有一个付款成功页面,我们在其中读取查询字符串?paid = yes。
如果付款=是,那么我们会显示付款成功消息等。否则付款失败。
最好的方法是什么:
验证?paid = yes查询字符串是否有效?换句话说,我们如何阻止人们手动操作查询字符串?
设置查询字符串到期时间或设置尝试次数(最多1次)?
感谢。
答案 0 :(得分:1)
像往常一样:永远不要相信用户输入。查询字符串中具有?paid=yes
或不具有b'...'
的请求之间的唯一区别将是您显示的消息。您必须通过直接与支付提供商沟通来查找结果来找到另一种验证付款的方式。
答案 1 :(得分:0)
在我看来,你不能在查询中验证付款,我会给客户一张票,所以现在查询将是?ticket=UUID
,其中uuid可以使用GUID类Giud.NewGuid()
生成。
现在在您的服务器的数据库中,您也应该创建票证,并使用一个布尔字段来指示付款是否已完成。