如果您无法通过云验证付款,如何在云中安全保存订单?

Ste*_*hen 8 php security android design-patterns web-services

我正在开发一个移动票务销售应用程序.该系统允许用户使用第三方API(CardIO)支付项目费用,将所有信息保存到我的服务器,快乐地坐在云端.

问题归结为: 因为(1)付款流程完全在手机上发生,并且(2)没有API允许我的服务器与付款处理器核实付款实际发生,我不知道如何最好在我的服务器上的数据库中将其标记为已付款之前,验证用户是否确实已为该项目付款.

您看,用户可以手动关注我的api呼叫,登录他们的帐户,然后将命令发送到我的服务器,将购买标记为付款而无需支付该项目.

所以问题是: 我如何验证付款是在我的服务器上进行的,还是通过移动应用程序进行某种握手或加密?

我目前的方法: 我通过SSL(HTTPS)调用向服务器发送所需的纯文本信息.除此之外,我发送该字符串的散列并验证在我的服务器上使用相同的算法,发送的字符串与发送的散列相匹配.我想,我可以使用某种秘密密钥来生成此哈希,然后验证纯文本与服务器端的哈希值匹配,以确保没有任何更改.我对这个解决方案的问题是,我认为它不是那么安全......有人可以,而不是轻易破解算法,因为它们被赋予加密和纯文本.

谢谢你的期待!

斯蒂芬

Joh*_*een 6

简短的回答是你不能相信客户,期间.随心所欲地抓住它 - 这无法构建交易信息.

如果您的支付处理器没有您可以信赖的API,那么您需要一个更好的API ...它可以立即和将来解决您的问题.