问题描述
看起来我所做的一切都是正确的,但我一直收到这个错误......
响应文本错误:
response .text {"name":"INVALID_TRACKING_NUMBER","message":"The requested resource ID was not found","debug_id":"12345","details":[{"field":"tracker_id","value":"1234-567890","location":"path","issue":"INVALID_TRACKING_INFO"}],"links":[]}
响应状态:<Response [404]>
我使用的是真实交易和真实跟踪号。
我通过 python 来做这件事,这是我的代码:
def paypal_oauth():
url = 'https://api-m.paypal.com/v1/oauth2/token'
headers = {
"Content-Type": "application/json","Accept-Language": "en_US",}
auth = "1234-1234","0987"
data = {"grant_type":"client_credentials"}
response = requests.post(url,headers=headers,data=data,auth=(auth))
return response
def paypal_tracking(paypal_transaction_token,tracking_number,status,carrier):
try:
_paypal_oauth = paypal_oauth()
_paypal_oauth_response = _paypal_oauth.json()
except Exception as e:
print(e)
pass
access_token = _paypal_oauth_response['access_token']
url = 'https://api-m.paypal.com/v1/shipping/trackers/%s-%s/' % (paypal_transaction_token,tracking_number)
# https://api-m.paypal.com/v1/shipping/trackers/1234-567890/
carrier = carrier_code(carrier)
# This grabs carrier from a method and gets back: 'dhl'
headers = {
'Content-Type' : 'application/json','Authorization' : 'Bearer %s' % access_token,}
# {'Content-Type': 'application/json','Authorization': 'Bearer 1234'}
data = {
"transaction_id":"%s" % paypal_transaction_token,"tracking_number":"%s" % tracking_number,"status": "%s" % status,"carrier": "%s" % carrier
}
# {'transaction_id': '1234','tracking_number': '567890','status': 'SHIPPED','carrier': 'dhl'}
response = requests.put(url,data=json.dumps(data))
return HttpResponse(status=200)
任何有 paypal 经验或使用 API 的人都能看到我的问题吗?
解决方法
要添加跟踪号(不是更新),请使用 HTTP POST 请求 as documented。
POST 的 URL 是 https://api-m.sandbox.paypal.com/v1/shipping/trackers-batch
,没有额外的 URL 参数。
正文格式为
{
"trackers": [
{
"transaction_id": "8MC585209K746392H","tracking_number": "443844607820","status": "SHIPPED","carrier": "FEDEX"
},{
"transaction_id": "53Y56775AE587553X","tracking_number": "443844607821","carrier": "FEDEX"
}
]
}
请注意,trackers
是一个 array JSON 对象。