我已经使用 authorize.net CIM 创建了一个应用程序。在测试模式下使用应用程序时,一切正常。当我从测试模式切换到实时模式并粘贴正确的用户 ID 和事务密钥时,它显示:API 用户名无效或不存在。
这没有道理。我 100% 认为 api 用户名和事务密钥是正确的。
我正在使用 CIM codeigniter 库。这是处理 CIM 的设置和初始化的代码...
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/*
By: Spicer Matthews <spicer@cloudmanic.com>
Company: Cloudmanic Labs, LLC
Website: http://www.cloudmanic.com
Based On Work From:
- John Conde <johnny@johnconde.net>
- http://www.communitymx.com/content/article.cfm?page=4&cid=FDB14
*/
class AuthorizeCimLib
{
private $_CI;
private $_loginname;
private $_loginkey;
private $_response;
private $_resultCode;
private $_responseCode;
private $_responseText;
private $_success;
private $_error;
private $_url;
private $_parsedresponse;
private $_xml;
private $_call;
private $_responsecall;
private $_directresponse;
private $_items = array();
private $_params = array();
private $_validationmode = 'liveMode';
private $_errormsg = '';
private $_loginhost = 'api.authorize.net';
private $_testhost = 'apitest.authorize.net';
private $_loginpath = '/xml/v1/request.api';
//
// Construct.....
//
function __construct()
{
$this->_CI =& get_instance();
$this->_set_url();
$this->_set_default_params();
// If the config is setup properly use that to initialize
$this->_CI->config->load('authorizenet');
if($this->_CI->config->item('authorizenetname') &&
$this->_CI->config->item('authorizenetkey') &&
$this->_CI->config->item('authorizenettestmode'))
{
$this->initialize($this->_CI->config->item('authorizenetname'), $this->_CI->config->item('authorizenetkey'), $this->_CI->config->item('authorizenettestmode'));
}
log_message('debug', "AuthorizeCimLib Class Initialized");
}
//
// Call this function to setup the library variables. Such as API keys.
//
public function initialize($name, $key, $testmode = FALSE)
{
// Are we in test mode??
if($testmode)
{
$this->_set_testmode();
}
// Setup login names and keys.
$this->_loginname = $name;
$this->_loginkey = $key;
}
//
// Set validation mode.
//
public function set_validationmode($mode)
{
$types = array('none', 'testMode', 'liveMode', 'oldLiveMode');
if(in_array($mode, $types))
{
$this->_validationmode = $mode;
return 1;
}
else
{
log_message('debug', "AuthorizeCimLib Not A Valid Test Mode");
return 0;
}
}
//
// Get validation mode.
//
public function get_validationmode()
{
return $this->_validationmode;
}
//
// Set Parameters to send to Authorize.net
//
public function set_data($field, $value)
{
$this->_params[$field] = $value;
}
//
// C;ear Parameters data
//
public function clear_data()
{
$this->_params = array();
$this->_set_default_params();
}