我正在努力在 Authorize.Net API 上获取交易。 我使用相同的代码示例,SDK 表示为了切换到生产环境,我需要在 Controller 上设置环境变量。 链接为here 。我不知道应该在哪里添加这行代码
createtransactioncontroller.setenvironment(constants.PRODUCTION)
其余代码是here
这是使用 Controller 的正确方法
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 ') 对其进行硬编码 但如果您不这样做,则将其保留为常量。生产
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']
希望这对您有帮助。
关于python-3.x - 如何将生产变量传递给Authorize.Net API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56741738/