Ios 我如何知道应用内购买收据是否来自沙箱?

Ios 我如何知道应用内购买收据是否来自沙箱?,ios,security,in-app-purchase,Ios,Security,In App Purchase,iOS IAP文档指出,如果要测试商店,应在设置应用程序中从itunes帐户注销。在进行应用内购买时,系统会要求您输入用户名和密码。然而,在应用程序内部,我不知道用户是否登录或是否使用沙箱帐户 事实上,我并不真正关心它是否是一个沙盒事务,但是:在服务器上,我必须通过URL验证真实的收据,并通过URL验证沙盒收据。如何在服务器上知道收据是沙盒收据还是真实收据 或者应用程序如何知道收据是真实的还是沙箱的,因为我可以将附加参数从应用程序传递到服务器 什么不起作用:你不能只说应用程序的调试版本使用沙盒环

iOS IAP文档指出,如果要测试商店,应在设置应用程序中从itunes帐户注销。在进行应用内购买时,系统会要求您输入用户名和密码。然而,在应用程序内部,我不知道用户是否登录或是否使用沙箱帐户

事实上,我并不真正关心它是否是一个沙盒事务,但是:在服务器上,我必须通过URL验证真实的收据,并通过URL验证沙盒收据。如何在服务器上知道收据是沙盒收据还是真实收据

或者应用程序如何知道收据是真实的还是沙箱的,因为我可以将附加参数从应用程序传递到服务器


什么不起作用:你不能只说应用程序的调试版本使用沙盒环境,而应用程序的临时或发布版本使用生产环境。使用临时版本,完全可以使用iTunes测试帐户进行应用程序内购买。

当您验证收据时,如果您收到状态代码21007,则表示它是沙箱收据。看这里:

我应该使用什么url来验证我的收据?
始终首先使用生产URL验证您的收据;如果收到21007状态代码,请继续使用沙盒URL进行验证。遵循这种方法可以确保在应用程序在沙箱中测试或审阅或在应用商店中运行时,不必在URL之间切换

21007状态代码表示此收据是沙箱收据,但已发送给生产服务进行验证。状态为0表示收据已正确验证。有关更多信息,请参阅


在依赖21007时要非常小心。阅读这里的评论