2017-02-15 62 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我愿意尝试,但评论编辑器会截断您发布的位置密钥和沙盒令牌。你可以编辑你的答案并将它们添加到那里?再次感谢你! –

相关问题