如何将生产变量传递给Authorize.Net API?

How to pass the production variable to Authorize.Net API?

我正在努力获取 Authorize.Net API 上的交易。 我正在使用相同的代码示例,SDK 说为了切换到生产环境,我需要在控制器上设置环境变量。 link 是 here。我不确定我应该在哪里添加这行代码

createtransactioncontroller.setenvironment(constants.PRODUCTION)

其余代码是here

这样使用控制器正确吗

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()

我遇到了同样的错误,修复它的方法是将文件 constants.py 更改为 credentials.py,然后将变量更改为 MY_CONSTANTS,但您可以将它们更改为如果需要,可以作为凭据。

如果此时它不起作用,您可以尝试使用 createtransactioncontroller.setenvironment('https://api2.authorize.net/xml/v1/request.api') 对其进行硬编码 但如果你不这样做,那就让它成为 constants.PRODUCTION

    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']

希望对您有所帮助。