2017-02-22 11 views
0

Каждый раз, когда я пытаюсь вернуть карту, я получаю JSON, вставленный ниже. Это происходит после того, как я авторизую карту, а затем фиксирую плату, а затем хочу внести частичное возмещение. Для «tender_id» я попробовал как идентификатор транзакции, так и идентификатор, который я передал во время авторизации. Конечно, для захвата нет тендер_ид или id, потому что успешный захват возвращает только «{}».Квадратный REST API: ошибка выдачи возврата

Я также использую учетные данные для песочницы. Плата была сделана с помощью nonce, сгенерированной с учетными данными для песочницы.

Что случилось?

Благодаря ...

POST в:

https://connect.squareup.com/v2/locations/CBASEHHNorL75TjuSOAvKQLnuNYgAQ/transactions/a2905f34-c8e8-5534-7676-82e8c580e9bf/refund 

С помощью этого JSON:

{ 
    "idempotency_key":"6464dc19-1703-47c0-81f9-4f0f1361eada", 
    "tender_id":"291d56b3-1e73-5bff-6e8e-719fd134b83f", 
    "reason":”Partial refund", 
    "amount_money":{ 
     "amount":4500, 
     "currency":"USD" 
    } 
} 

дает такой ответ:

{ 
    "errors": [ 
    { 
     "category": "INVALID_REQUEST_ERROR", 
     "code": "NOT_FOUND", 
     "detail": "Location `CBASEHHNorL75TjuSOAvKQLnuNYgAQ` does not have a transaction tender with ID `291d56b3-1e73-5bff-6e8e-719fd134b83f`." 
    } 
    ] 
} 

UPDATE: результат с запросил GET-вызов (в com Менты к ответу) является:

{ 
    "transaction":{ 
    "id":"a2905f34-c8e8-5534-7676-82e8c580e9bf", 
    "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ", 
    "created_at":"2017-02-21T22:08:10Z", 
    "tenders":[ 
    { 
     "id":"a18b98c7-5ac7-51c1-618c-3b95ee124c1b", 
     "location_id":"CBASEHHNorL75TjuSOAvKQLnuNYgAQ", 
     "transaction_id":"a2905f34-c8e8-5534-7676-82e8c580e9bf", 
     "created_at":"2017-02-21T22:08:10Z", 
     "note":"Online Transaction", 
     "amount_money":{ 
      "amount":12500, 
      "currency":"USD" 
     }, 
     "processing_fee_money":{ 
      "amount":372, 
      "currency":"USD" 
     }, 
     "type":"CARD", 
     "card_details":{ 
      "status":"CAPTURED", 
      "card":{ 
       "card_brand":"VISA", 
       "last_4":"5858" 
      }, 
      "entry_method":"KEYED" 
     } 
    } 
    ], 
    "reference_id":"63614ae8-539a-4339-b5c7-554bae64fbed", 
    "product":"EXTERNAL_API" 
    } 
} 
+0

Обычно возврат средств может быть осуществлен только после определенного периода времени после совершения первоначальной транзакции. Когда была снята карточка? попробуйте вернуть деньги на карту, взимаемую вчера. –

+0

Я действительно думал об этом, но ничто в документах не говорит об этом. Если это так, и требуемая задержка составляет более нескольких минут, у меня будет проблема. –

+0

Единственным временным ограничением является время сетевых подключений к нашим системам. Вы сможете вернуть деньги почти мгновенно. – tristansokol

ответ

0

После захвата, вы пробовали листинг/извлечение транзакции, чтобы получить полную информацию, в том числе тендерных ид? Не могли бы вы отправить ответ от GET /v2/locations/CBASEHHNorL75TjuSOAvKQLnuNYgAQ/transactions/a2905f34-c8e8-5534-7676-82e8c580e9bf, если это не сработает?

+0

Я попробую, спасибо. Но зачем это нужно? Авторизация дает мне несколько идентификаторов (я не понимаю разных целей каждого). Ответ на обвинение с фиксацией false - это список тендеров, каждый из которых имеет идентификатор. Почему этот возвращенный идентификатор недействителен? –

+0

ОК @ tristansokol Я попробовал это снова, с нуля. Создал авторизацию, зафиксировал ее, перечислил транзакции, чтобы убедиться, что она есть. Это было, и у него был тот же идентификатор транзакции, что и идентификатор auth, который я получил, когда я разрешил. Я попытался вернуть его. Такая же ошибка. Я попробовал идентификатор и тендер. Также попробовал обвинение, которое я сделал несколько дней назад. Все с той же ошибкой. Не могли бы вы обострить это? –

+0

Вам не обязательно, но вы не фиксируете тендерный идентификатор должным образом, эти шаги должны были помочь вам отлаживать. Вам нужно использовать 'tender_id' (' a18b98c7-5ac7-51c1-618c-3b95ee124c1b') в запросе на возврат JSON. В вашем почтовом теле выше вы использовали транзакцию «transaction_id» другой транзакции. Рад объяснить, как тендеры и сделки отличаются, если это поможет. – tristansokol

Смежные вопросы