2016-07-03 14 views
1

Ich habe Square Up implementiert, um Zahlungen und Rückerstattungen über die API zu erstellen. Beide Implementierungen sehen gut aus, aber die Rückerstattungen kommen als "Ausstehend".Square Up Pending Refund Beispiel

Ich versuche, einen Webhook zu implementieren, um die Zahlung an meinem Ende zu aktualisieren, aber ich finde kein gutes Beispiel dafür, wie der Workflow funktionieren sollte.

Gibt es auch eine Möglichkeit, eine bestimmte Rückerstattung per ID alle X Minuten abzufragen, um den Rückerstattungsstatus zu finden, anstatt den Haken zu implementieren?

Dank

Antwort

2

Die webhooks API nur Rückerstattungen Beiträge, die abgeschlossen sind, nicht anhängig. Sie können den Status einer Rückerstattung unter Verwendung der retrieve transactions endpoint abrufen. Diese Antwort dieses Endpunkts enthält alle Rückerstattungen für die angegebene Transaktion.

1

Bitte überprüfen Sie es. Ich empfehle streamdata anstelle von webhook.

//Create refunds 
var client = new RestClient("https://connect.squareup.com/v2/locations/{{location_id}}/transactions/{{transaction_id}}/refund"); 
    var request = new RestRequest(Method.POST); 
    request.AddHeader("postman-token", ""); 
    request.AddHeader("cache-control", "no-cache"); 
    request.AddHeader("content-type", "application/json"); 
    request.AddHeader("authorization", "Bearer {{access_token}}"); 
    request.AddParameter("application/json", "{\n \"idempotency_key\": \"YOUR_IDEMPOTENCY_KEY\",\n \"tender_id\": \"TENDER_ID\",\n \"reason\": \"a reason\",\n \"amount_money\": {\n \"amount\": 100,\n \"currency\": \"USD\"\n }\n}", ParameterType.RequestBody); 
    IRestResponse response = client.Execute(request); 

//List refunds 
    var client = new RestClient("https://connect.squareup.com/v2/locations/{{location_id}}/refunds"); 
    var request = new RestRequest(Method.GET); 
    request.AddHeader("postman-token", ""); 
    request.AddHeader("cache-control", "no-cache"); 
    request.AddHeader("authorization", "Bearer {{access_token}}"); 
    IRestResponse response = client.Execute(request);