如何通过Http请求正确发送应用内订阅收据?

问题描述

我想将应用内订阅后从AppStore获得的收据发送到服务器以进行验证(因为Apple建议从服务器而不是应用程序进行验证)。 收据上有“ +”,“ /”和“ =”之类的符号。由于我无法发送这些符号,因此更改了它们,例如用“%2B”替换+,依此类推。 但是即使那样,我也只能在服务器上获得部分收据。将其作为序列化JSON发送也没有帮助。 (我需要将更多数据连同收据一起发送到服务器,因此,如果不转换为Nsstring,就无法传递收据) 我该如何解决这个问题?

解决方法

我想到了一些事情。

  1. 检查您的服务器是否有请求正文大小限制,并确保要发送的内容不超过此限制。

  2. 您永远不要修改收据,因为它是由Apple加密签名的,如果尝试验证签名等,对收据所做的任何更改都只会使其无效。

  3. 您可以选择让Apple通知您的服务器有关任何应用内购买的消息。

可以输入Webhook /回调URL,以便Apple可以点击。

在屏幕右下角查找“订阅状态URL”。如果您拥有适当的权限,则可以在进行新购买时将Apple服务器的URL设置为POST到。