Как передать производственную переменную в API Authorize.Net? - PullRequest
2 голосов
/ 24 июня 2019

Я работаю над получением транзакций через API Authorize.Net.Я использую тот же пример кода, и SDK говорит, что для переключения на производственную среду мне нужно установить переменную среды на контроллере.Ссылка здесь .Я не уверен, куда мне добавить эту строку кода

createtransactioncontroller.setenvironment(constants.PRODUCTION)

Остальной код - это здесь

Это правильный способ использования контроллера

import os
import sys
import imp

from datetime import datetime, timedelta
from authorizenet import apicontractsv1
from authorizenet.apicontrollers import getSettledBatchListController
from authorizenet.apicontrollers import createTransactionController
constants = imp.load_source('modulename', 'constants.py')



def get_settled_batch_list():
    """get settled batch list"""
    createTransactionController.setenvironment(constants.PRODUCTION)
    merchantAuth = apicontractsv1.merchantAuthenticationType()

1 Ответ

2 голосов
/ 10 июля 2019

У меня была такая же ошибка, и как я ее исправил, я изменил файл constants.py на credentials.py, а затем изменил переменную на MY_CONSTANTS, но вы можете изменить их на учетные данные, если хотите.

Если в тот момент это не сработало, вы можете вместо этого попытаться жестко закодировать его с помощью createtransactioncontroller.setenvironment ('https://api2.authorize.net/xml/v1/request.api'), но если этого не сделать, оставьте его постоянным. ПРОИЗВОДСТВО

    createtransactioncontroller = createTransactionController(createtransactionrequest)
    createtransactioncontroller.setenvironment(constants.PRODUCTION)
    # or createtransactioncontroller.setenvironment('https://api2.authorize.net/xml/v1/request.api')
    createtransactioncontroller.execute()

Я использовал словарь для своих учетных данных (константы в вашем случае), поэтому мой выглядит немного иначе.

    import imp
    import os
    import sys
    import importlib
    from authorizenet.constants import constants
    from authorizenet import apicontractsv1
    from authorizenet.apicontrollers import createTransactionController

    from .credentials import MY_CONSTANTS

# retrieved from the constants file
merchantAuth = apicontractsv1.merchantAuthenticationType()
merchantAuth.name = MY_CONSTANTS['apiLoginId']
merchantAuth.transactionKey = MY_CONSTANTS['transactionKey']

Надеюсь, это помогло вам.

...