Интеграция веб-сервиса fedex с питоном
Я хочу интегрировать Fedex с Odoo (ранее OpenERP), который написан на Python. Ниже приведен код для отслеживания интеграции груза.
def config_fedex(self, cr, uid, ids=False, context=None):
self_brw = self.browse(cr, uid, ids[0])
CONFIG_OBJ = FedexConfig(
key=self_brw.key,
password=self_brw.password,
account_number=self_brw.account_number,
meter_number=self_brw.meter_number,
use_test_server=self_brw.use_test_server
)
return CONFIG_OBJ
import os
import sys
from openerp.osv import fields, osv
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import logging
from fedex.config import FedexConfig
from fedex.services.track_service import FedexTrackRequest
logging.basicConfig(level=logging.INFO)
def track_shipment(self, cr, uid, ids=False, context=None):
CONFIG_OBJ = self.config_fedex(cr, uid, ids)
track = FedexTrackRequest(CONFIG_OBJ)
track.TrackPackageIdentifier.Type = 'TRACKING_NUMBER_OR_DOORTAG'
track.TrackPackageIdentifier.Value = '798114182456'
track.send_request()
print track.response
print "== Results =="
for match in track.response.TrackDetails:
print "Tracking #:", match.TrackingNumber
print "Status:", match.StatusDescription
return True
но с этим кодом каждый раз я получаю следующую ошибку:
'FedexFailure: извините, мы не можем обработать ваш запрос на отслеживание. Повторите попытку позже или свяжитесь со службой поддержки по телефону 1.800.Go.FedEx(R) 800.463.3339. (Код ошибки: 9075)'
Я проверил "798114182456" непосредственно на веб-сайте FedEx, и он дает мой текущий статус.
Что я делаю неправильно? Есть ли другие способы сделать это?
1 ответ
Это может помочь. В основном вам нужно получить производственные ключи и протестировать их на реальном трекинг-номере. Сегодня я разговаривал с веб-службами FedEx по телефону, и они дали мне единственный контрольный номер отслеживания, который является 123456789012. Это работало каждый раз для меня в моем приложении. Если я использую реальный номер для отслеживания с тестовыми ключами разработчика, это может работать 1% времени. Надеюсь это поможет.
Также убедитесь, что когда вы получаете производственные ключи, вы меняете use_test_server на True в вашей конфигурации, если вы используете его таким образом. В противном случае вы получите ошибку аутентификации.