我正在开发一个移动票务销售应用程序.该系统允许用户使用第三方API(Cardio)支付项目费用,将所有信息保存到我的服务器,快乐地坐在云端.
问题归结为:
因为(1)付款流程完全在电话上发生,并且(2)没有API允许我的服务器与付款处理器核实付款实际发生,我想知道如何最好地验证是否用户确实已经支付了该项目,然后在我的服务器上将其标记为已付款.
您看,用户可以手动关注我的api呼叫,登录他们的帐户,然后将命令发送到我的服务器,将购买标记为付款而无需支付该项目.
所以问题是:
如何验证付款是在我的服务器上进行的,还是通过移动应用程序进行某种握手或加密?
我目前的做法:
我通过SSL(HTTPS)调用将所需的纯文本信息发送到服务器.除此之外,我发送该字符串的哈希并验证在我的服务器上使用相同的算法,发送的字符串与发送的哈希匹配.我想,我可以使用某种秘密密钥来生成此哈希,然后验证纯文本与服务器端的哈希值匹配,以确保没有任何更改.我对这个解决方案的问题是,我不认为它真的那么安全……有人可以,而不是轻易破解算法,因为它们被赋予加密和纯文本.
谢谢你的期待!
斯蒂芬
简短的回答是你不能相信客户,期间.随心所欲地抓住它 – 这无法构建交易信息.
原文链接:https://www.f2er.com/php/136854.html如果您的支付处理器没有您可以依赖的API,那么您需要一个更好的API …它可以立即和将来解决您的问题.