我如何找到“已签名的有效载荷”?来自Bigcommerce API


How can I find "signed payload" from Bigcommerce API

我使用https://github.com/bigcommerce/hello-world-app-php-silex开发Bigcommerce APP

当我安装和启动应用程序从"我的草案应用程序"之后,它被重定向到其他域。

但是,GET请求不包含"signed payload"。得到错误"Invalid signed_payload "(GET请求包含代码、上下文和范围)

如何找到"签名有效载荷"?以及如何在GET请求中添加"签名有效载荷"?

如果你正在将应用程序安装到商店中,那么你正在接收适当的GET请求参数。在你的应用程序通过生成oAuth API令牌正确安装之后,你才会收到signed_payload

当你第一次安装一个应用程序到商店,它是"授权回调请求",将被发送,其中包括code, context,和scope。使用这3个值,以及您已经拥有的另外4个值,您就可以向BC认证服务(https://login.bigcommerce.com/oauth2/token)发出POST请求,以生成API令牌。一旦成功完成,你的应用就安装好了。以下是BC文档,详细介绍了"Auth回调请求"参数和POST请求细节,以便为存储生成oAuth API令牌:

https://developer.bigcommerce.com/api/callback

安装成功完成后,一旦你刷新了控制面板页面,你会看到你的应用程序出现在"应用程序"菜单中的图标。此时点击你的应用程序将生成"Load Callback Request",这是包含signed_payload查询参数的内容,如本页所述:

https://developer.bigcommerce.com/api/load

所以看起来你可能没有像PHP Silex示例应用程序的说明中所指出的那样,在你的应用程序设置中输入正确的认证回调URL。他们说你应该默认使用http://localhost:8000/auth/callback作为你的"认证回调URL"。如果你使用http://localhost:8000/load作为你的"认证回调URL",那么这将导致你所看到的错误。

如果你使用的是默认示例,并且你能够在你的"Load Callback"应用程序路径中接收Auth回调请求,即使它只是使用普通的HTTP,上述将是正确的。通常情况下,应用程序需要一个完整的HTTPS路径才能让Auth和Load回调工作。

我希望这有帮助,如果你需要进一步的帮助,请添加一些关于你的设置的更多细节。例如,你在BC应用程序设置中设置了什么作为你的"授权回调URL"?您是否更改了默认的PHP Silex代码?