2017-02-15 124 views
0

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的文檔和支持令人遺憾地缺乏。

回答

0

我認爲這裏的問題是,您已嘗試使用您的沙盒憑證(sandbox-sq0idp-defoUOlu...)對您的生產地點FPVPFZXXXXX收費。如果您使用沙箱憑據撥打電子郵件ListLocations,則應該得到一個不同的位置,然後您可以使用沙箱資費。

+0

感謝@tristansokol,但我試過。然後我這樣做,我得到不同的位置,當我嘗試使用它時,我被禁止,並且出現一條錯誤,表示我無法訪問該位置。 –

+0

然後,我認爲您嘗試將您的個人訪問令牌用於沙箱位置。嘗試使用'sandbox-sq0atb-R6 ...'定位'CBASEHHNorL75Tj ...',並且您得到的任何錯誤都應該與請求的主體相關。 – tristansokol

+0

感謝@tristansokol我願意嘗試,但評論編輯器會截斷您發佈的位置密鑰和沙盒令牌。你可以編輯你的答案並將它們添加到那裏?再次感謝你! –