2

背景: shopify が提供するテストストアを使用して、shopify アプリを構築しています。#Python #Django-

問題:トピック「products/update」および「products/delete」の Python API を使用して、テストストア用に Shopify Webhook をセットアップしました。しかし、テスト ストアで商品を手動で更新または削除すると、エンドポイントが Shopify によって呼び出されません。

これまでの私の探偵の仕事:私は以下をチェックしました:

  1. API を使用して Webhook が正常に作成されたことを確認しました。ストア用の API を使用して既存のすべての Webhook をリストしただけで、そこに私のものがあります。

  2. 製品の更新または削除が発生した場合に Shopify が呼び出すように webhook で指定したアドレス/URL は、私のローカルホストにないため、パブリック URL です。(127.0.0.1:8000 などではありません)

  3. 私の Webhook エンドポイントは問題ありません。テスト ケースでエンドポイントを手動で呼び出すと、本来の動作をします。

  4. Shopify アプリのサポート担当者に連絡したところ、この問題をここに投稿するよう求められました。

もう 1 つの小さな問題は、webhook が必要な場合に URL に POST する JSON/XML を Shopify API ドキュメントで正確に見つけることができないことです。そのため、JSONがどのように見えるかわかりません...

どんな助けでも大歓迎です!

4

2 に答える 2

1

回答ありがとうございますが、問題は別のものであることがわかりました。

Shopify が呼び出す POST リクエスト URL の CSRF 除外を作成するのを忘れました。また、Webhook に呼び出すように指示した URL の末尾に末尾のスラッシュ「/」を追加するのも忘れていました。

上記のコメントで提案されているように、postcatcher.in のようなものを使用した場合、これらのエラーをキャッチしたと思います。あまりにも面倒そうに見えたので、私はそれを気にしませんでした。

于 2012-09-14T11:27:14.047 に答える
1

どうやらコメントする信用がないので、代わりにこれを「答え」に入れます-用語を非常に大まかに使用します-。Python API で似たような問題に遭遇しましたが、すぐに自分のやり方が間違っていることに気付きました。私の場合は、フルフィルメント ステータスを切り替えて、メディアのダウンロード場所を顧客に通知する電子メールを送信しました。

私が間違っていたのは、注文オブジェクトのフルフィルメント属性を直接変更していたことです。代わりに、save() よりも、フルフィルメントオブジェクトを取得/作成し、それを変更して、注文属性をこのオブジェクトにポイントするのが正しい方法でした。これはうまくいきました。

コードが投稿されていないため、これがあなたの問題かどうかはわかりませんが、これが役立つことを願っています.

--マット

于 2012-09-12T13:51:22.917 に答える