2016-04-19 6 views
1

Ich versuche Recurly Webhooks von gerade ausgeführt wird mehrmals zu verhindern, wenn sie nicht ordnungsgemäß erneut versucht werden (d.h .: wenn gelegentlich gehen und Server Auszeit Builds). Ich sehe im Dashboard, dass Webhooks eindeutige IDs haben, aber diese scheinen im Nachrichtenhash nicht erreichbar zu sein, fehlt mir etwas? Ich verwende Rails für das, was es wert ist.Recurly Webhook ID

<?xml version="1.0" encoding="UTF-8"?> 
<updated_subscription_notification> 
    <account> 
    <account_code>1</account_code> 
    <username nil="true"></username> 
    <email>[email protected]</email> 
    <first_name>Verena</first_name> 
    <last_name>Example</last_name> 
    <company_name nil="true"></company_name> 
    </account> 
    <subscription> 
    <plan> 
     <plan_code>1dpt</plan_code> 
     <name>Subscription One</name> 
    </plan> 
    <uuid>292332928954ca62fa48048be5ac98ec</uuid> 
    <state>active</state> 
    <quantity type="integer">1</quantity> 
    <total_amount_in_cents type="integer">200</total_amount_in_cents> 
    <activated_at type="datetime">2010-09-23T22:12:39Z</activated_at> 
    <canceled_at nil="true" type="datetime"></canceled_at> 
    <expires_at nil="true" type="datetime"></expires_at> 
    <current_period_started_at type="datetime">2010-09-23T22:03:30Z</current_period_started_at> 
    <current_period_ends_at type="datetime">2010-09-24T22:03:30Z</current_period_ends_at> 
    <trial_started_at nil="true" type="datetime"> 
    </trial_started_at> 
    <trial_ends_at nil="true" type="datetime"> 
    </trial_ends_at> 
    <collection_method>automatic</collection_method> 
    </subscription> 
</updated_subscription_notification> 

Antwort

1

A Webhook mehrmals zurückgezogen werden, jedoch einmal ein erfolgreicher Statuscode vom Server empfangen wird, wird Recurly Versuch stoppen, die Benachrichtigung zu senden. Daher wird pro Event nur ein Webhook ausgeliefert. Außerdem sind Webhook-IDs nicht im Nachrichtenhash enthalten, sie werden nur in der Benutzeroberfläche gefunden.

1

Leider ist der einzige Weg, webhooks zu stoppen resent entfernt, ist mit einem 200-Statuscode mit 5 Sekunden, um zu antworten. (https://docs.recurly.com/docs/webhooks)

Es betrug 30 Sekunden, aber das wurde geändert November 2015, denke ich.

Jedenfalls löste ich es durch die Nachricht in eine Warteschlange abzuwerfen und sofort mit 200-Antwort reagiert.