Eşzamanlı yanıt
Webhook'ta eşzamanlı yanıtı açın, Senkronizasyon Webhook Tetikleyicisi ve Webhook Yanıtını Geri Gönder eylemiyle Shopify Flow sonucunu arayana döndürün.
Normalde bir webhook, çağrıyı yapan tarafa anında yanıt verir ve Shopify Flow iş akışınız arka planda çalışır. Eşzamanlı yanıt seçeneği etkinleştirildiğinde, uygulama iş akışınız verileri geri gönderene kadar çağrıyı yapan tarafın HTTP isteğini açık tutar ve bunun yerine bu verileri döndürür.
Arayan kişinin sadece bir onay değil, bir cevap beklediği durumlarda kullanışlıdır - bir sonuç gösteren bir form, hesaplanmış bir değer gerektiren bir sistem veya bir arama işlemi gibi.
Açın
Gelişmiş Ayarlar -> Webhook'ta senkron yanıt.
İş akışını oluşturun
Bir senkronizasyon webhook’u, standart Webhook Tetikleyicisini değil, **Senkronizasyon Webhook **Tetikleyicisini tetikler. Bu tetikleyici, yanıt bekleyen tek tek istekleri tanımlayan invocationId adlı ek bir alan içerir.
| Adım | Ne |
|---|---|
| Tetikleyici | Senkronizasyon Webhook Tetikleyicisi |
| Durum | Webhook ID, webhook'unuzun kimliğine eşittir |
| Son eylem | Webhook Yanıtını Geri Gönderme |
Olay üç alanda geçiyor:
| Alan | İçine ne konulmalı? |
|---|---|
| Çağırma Kimliği | Tetikleyiciden {{invocationId}} değerini bağlayın. Bu değer olmadan yanıtınız bekleyen arayanla eşleştirilemez ve silinir. |
| Yanıt gövdesi | Arayan kişinin aldığı mesaj - aşağıya bakınız. |
| İçerik türü | İsteğe bağlı. Varsayılan değer application/json’dir; düz metin için text/plain kullanın. |
Yanıt gövdesini yazma
Tetikleyicinin değişkenlerini kullanarak gövdeyi doğrudan alana yazabilirsiniz; çoğu iş akışında gereken tek şey budur:
{"ok": true, "orderId": "{{fieldOne}}", "email": "{{fieldTwo}}"}
Tüm tetikleyici alanları kullanılabilir: {{fieldOne}}'den {{fieldFour}}'e, {{rawBody}} ve {{webhookId}}.
Mantık gerektiren her şey için - bir müşteriyi aramak, toplam tutarı hesaplamak, daha büyük bir nesneyi şekillendirmek gibi - iş akışının daha başlarında bir Kod Çalıştır eylemi kullanın ve sonucunu buraya bağlayın.
Cevap gelmediğinde
İş akışınız 15 saniye içinde yanıt vermezse, çağıran tarafa bunun yerine normal yanıt gönderilir - senkronize olmayan bir webhook’un döndürdüğü 200 yanıtı. Bu hiçbir zaman bir hata değildir ve çağıran taraf asla beklemede bırakılmaz. Çağrı yine de Geçmiş’te görünür ve iş akışı yine de tamamlanabilir; yalnızca yanıt, kullanılmak için çok geç kalır.
En sık görülen nedenler:
- İş akışı etkinleştirilmemiştir.
- Bu, Senkronizasyon Tetikleyicisi yerine standart Webhook Tetikleyicisi üzerine kurulmuştur.
- Bir dal, Return Webhook Response aşamasına ulaşamadan sona erdi.
- Invocation ID'si bağlanmamıştı.
Bilmeniz gerekenler
- İlk yanıt kazanan olur. Aynı talebe iki iş akışı yanıt verirse, çağrı yapan taraf birincisi; ikincisi atılır.
- Yinelenen teslimatlar asla beklemez. Bir istek, Yinelenen teslimat koruması hemen sonuç verir - iş akışı çalıştırılmaz, dolayısıyla cevap verecek bir şey yok.
- Tipik bir gidiş-dönüş süresi 2-4 saniyedir, ancak Shopify bu konuda herhangi bir zaman garantisi vermemektedir. Shopify Flow. Eşzamanlı yanıtları “elinden gelenin en iyisi” olarak değerlendirin: pratikte hızlıdır, 15 saniyelik son çare olarak yedek çözüm.
