Square REST API文檔聲明我應該獲得我的位置列表,然後在調用交易端點(向信用卡收費)時使用返回的位置代碼。我正在做這件事,但返回的錯誤說,商家沒有提供所提供的ID的位置。收費時未發現錯誤Square API
我已經嘗試過這種方法,因爲它是一個路徑變量,因此在發送到事務端點的JSON中使用location_id。同樣的結果。我也在Square的API常見問題解答中看到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在上面的例子一點。
接下來,我打電話到卡充到這個URI:
https://connect.squareup.com/v2/locations/FPVPFZ4DXXXXX/transactions
這身搭配:
{
"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的文檔和支持令人遺憾地缺乏。
感謝@tristansokol,但我試過。然後我這樣做,我得到不同的位置,當我嘗試使用它時,我被禁止,並且出現一條錯誤,表示我無法訪問該位置。 –
然後,我認爲您嘗試將您的個人訪問令牌用於沙箱位置。嘗試使用'sandbox-sq0atb-R6 ...'定位'CBASEHHNorL75Tj ...',並且您得到的任何錯誤都應該與請求的主體相關。 – tristansokol
感謝@tristansokol我願意嘗試,但評論編輯器會截斷您發佈的位置密鑰和沙盒令牌。你可以編輯你的答案並將它們添加到那裏?再次感謝你! –