我碰到了this tutorial,它使用了世界上的每一种技术,旨在展示如何从头开始构建React应用以利用shopify API。但是,this page也描述了一个简单的API调用,以执行或多或少的我所需的工作。
目标是拥有一个完全自定义(极其简单)的结帐流程,并最终在shopify系统中进行。它会是这样的:
可以条带化购买->保存购物订单->谢谢页面重定向。
编辑:看来格式https://api_key:api_secret.@my-store.myshopify.com/admin/api/2019-07/orders.json
解决了身份验证问题。通话:
GET https://key:secret@my-test-store.myshopify.com/admin/api/2019-07/orders.json
返回愉快
{
"orders": []
}
,所以可以通过身份验证。
但是,进行POST https://key:secret@my-test-store.myshopify.com/admin/api/2019-07/orders.json
似乎要返回一个隐秘的页面,而不是像这样的错误(它只会导致您的演示商店/应用程序):
答案 0 :(得分:2)
您确定请求中没有cookie吗?因为如果添加Cookie,我可以重现您的确切问题。
使用curl
可能更容易,以便对发布的内容有绝对的了解。例如:
# Edit to change app hostname, key/secret, and product/variant/customer ids
curl -X POST 'https://key:secret@so57018447.myshopify.com/admin/api/2019-07/orders.json' \
-H 'Content-Type: application/json' \
-d '{
"order": {
"line_items": [
{
"product_id": 2017449607219,
"variant_id": 17985741619251,
"quantity": 1
}
],
"customer": {
"id": 1257159000115
},
"financial_status": "pending"
}
}
'
响应:
{
"order": {
"id":952834392115,
"email":"",
"closed_at":null,
"created_at":"2019-07-15T14:38:18-04:00",
...
但是,如果您想坚持使用Postman,以下是支持屏幕截图,显示了没有cookie的成功和失败的原因:
确认未设置cookie:
成功发布到orders.json
端点:
现在,添加一个cookie:
然后您的问题中得到了答复:
答案 1 :(得分:0)
如果您阅读了私人应用程序的文档
Shopify在使用基本HTTP身份验证的POST请求中不支持cookie。任何使用基本身份验证并包含cookie的POST请求都将失败,并显示200错误代码。使用具有基本身份验证的cookie可使您的应用暴露于CSRF攻击,例如会话劫持。
https://help.shopify.com/en/api/getting-started/authentication/private-authentication
这是故意的,在客户端这样做是犯罪的。如果您正在服务器端进行操作,则可以使用基本身份验证。但是在客户端,您不应该使用它
如果要在邮递员中使用,则需要将其与access_token
通过包含请求标头
X-Shopify-Access-Token: {access_token}
,私人应用可以通过Shopify进行身份验证,其中{access_token}
被您的私人应用的Admin API密码代替。