python - 显示 INVALID_TRACKING_CODE 的 PayPal 跟踪
问题描述
看起来我所做的一切都是正确的,但我一直收到这个错误......
响应文本错误:
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, headers=headers, data=json.dumps(data))
return HttpResponse(status=200)
任何有贝宝经验或使用 API 的人看到我的问题?
解决方案
要添加跟踪号(不更新),请使用 HTTP POST 请求,如文档中所述。
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",
"status": "SHIPPED",
"carrier": "FEDEX"
}
]
}
请注意,这trackers
是一个JSON object(s)数组。
推荐阅读
- reactjs - React Native - 模态 - 动态最大高度
- reactjs - 在个人选项卡中打开 React 组件
- python - 为什么终端给我这个错误并且所有模块都被导入了?
- android - SSO 谷歌登录无法登录
- .htaccess - 重写规则不适用于 apache2,lucee tomcat
- woocommerce - 将自定义 display_type 添加到 WooCommerce 类别(product_cat 分类)
- go - 使用可选查询参数构造 SQL 查询
- java - Java RecyclerView 重新排序和保留序列
- windows-10 - ICL 19.2:更新 VS2019 现在开始使用 is_always_equal _CXX17_DEPRECATE_OLD_ALLOCATOR_MEMBERS = true_type
- excel - Excel向上查找