Интеграция веб-сервиса 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 в вашей конфигурации, если вы используете его таким образом. В противном случае вы получите ошибку аутентификации.

Другие вопросы по тегам