2017-02-15 6 views
0

Square REST API 문서에 내 위치 목록을 가져와 거래 끝점 (신용 카드 청구)을 호출 할 때 반환 된 위치 코드를 사용해야한다고 나와 있습니다. 나는 정확하게 이것을하고 있지만 반환 된 오류는 상인이 제공된 ID가있는 위치가 없다고 말합니다.Square API를 충전 할 때 찾을 수 없음 오류

경로 변수이므로 트랜잭션 끝점에 전송 된 JSON의 location_id를 사용하거나 사용하지 않고이 방법을 시도했습니다. 같은 결과. 또한 Square의 API FAQ에서 404 오류의 일반적인 원인은 카드 넌스가 잘못 작성되었다는 것을 나타내지 만이 응답은 위치 ID가 유효하지 않다고 분명히 말합니다.

나는 이것을 우편 배달부와 JSON에서 테스트했으며 위치 코드가 정확한지 확인할 수 있습니다.

이것은 GET 요청입니다 : 여기

https://connect.squareup.com/v2/locations 

하고 응답한다 : 여기 내 통화 및 응답이

{ 
"locations": [ 
{ 
    "id": "FPVPFZ4DXXXXX", 
    "name": "MyCompany", 
    "address": { 
    "address_line_1": "123 Candy Lane", 
    "address_line_2": "", 
    "locality": "Smithfield", 
    "administrative_district_level_1": "RI", 
    "postal_code": "02917", 
    "country": "US" 
    }, 
    "timezone": "America/Los_Angeles", 
    "capabilities": [ 
    "CREDIT_CARD_PROCESSING" 
    ] 
}, 
{ 
    "id": "4FHNAN1WXXXXX", 
    "name": "MyCompany2", 
    "address": { 
    "address_line_1": "567 Smith Street", 
    "address_line_2": "", 
    "locality": "Greenville", 
    "administrative_district_level_1": "RI", 
    "postal_code": "02828-2910", 
    "country": "US" 
    }, 
    "timezone": "America/Los_Angeles", 
    "capabilities": [ 
    "CREDIT_CARD_PROCESSING" 
    ] 
} 
] 
} 

내가 반환 된 ID를 수정 위의 예에서 조금.

https://connect.squareup.com/v2/locations/FPVPFZ4DXXXXX/transactions 

이 몸으로 :

다음 나는 전화가이 URI에 카드를 충전 할 수 있도록

{ 
"note":"", 
"idempotency_key":"azsxdcfvrtrewsdf", 
"location_id":"FPVPFZ4DXXXXX", 
"shipping_address":{ 
    "address_line_1":"123 My Street", 
    "address_line_2":null, 
    "locality":"Greenville", 
    "administrative_district_level_1":"RI", 
    "postal_code":"02828", 
    "country":"US" 
}, 
"billing_address":{ 
    "address_line_1":"123 My Street", 
    "address_line_2":null, 
    "locality":"Greenville", 
    "administrative_district_level_1":"RI", 
    "postal_code":"02828", 
    "country":"US" 
}, 
"card_nonce":"CBASEPPW7fjdUHe-3jP6ZZ4kvE0gAQ", 
"reference_id":"RT-12345678", 
"amount_money":{ 
    "amount":12500, 
    "currency":"USD" 
}, 
"delay_capture":true, 
"buyer_email_address":"[email protected]", 
"customer_id":"JIM" 
} 

그리고 나는이 응답을 얻을 : 그래서

{ 
"errors": [ 
{ 
    "category": "INVALID_REQUEST_ERROR", 
    "code": "NOT_FOUND", 
    "detail": "This merchant does not have a location with the ID `FPVPFZ4DXXXXX`.", 
    "field": "location_id" 
} 
] 
} 

을 위치 ID는 위치 엔드 포인트가 리턴 한 ID와 정확하게 일치합니다.

이 API에 익숙한 사람이 나를 도와 줄 수 있습니까? Square의 문서 및 지원은 슬프게도 부족합니다.

답변

0

여기에서 문제는 샌드 박스 자격 증명 (sandbox-sq0idp-defoUOlu...)을 사용하여 생산 위치 FPVPFZXXXXX에 청구하려고 한 것입니다. ListLocations을 샌드 박스 자격 증명으로 호출하면 샌드 박스 요금을 부과 할 수있는 다른 위치를 얻어야합니다.

+0

감사합니다. @tristansokol하지만 시도해 보았습니다. 그런 다음, 나는 다른 위치를 얻고, 하나를 사용하려 할 때 나는 그 위치에 접근 할 수 없다는 오류와 금지되어 있습니다. –

+0

그러면 개인 액세스 토큰을 샌드 박스 위치와 함께 사용하려고했습니다. 'CBASEHHNorL75Tj ...'위치를'sandbox-sq0atb-R6 ...'와 함께 시도해보십시오. 그리고 여러분이 얻은 오류는 요청 본문과 관련이 있어야합니다. – tristansokol

+0

감사합니다. @tristansokol 시도하고 싶지만 메모 편집기가 게시 한 위치 키와 샌드 박스 토큰을 잘라냅니다. 아마도 귀하의 답변을 편집하여 거기에 추가 할 수 있습니까? 다시 감사합니다! –