Ошибка платежного шлюза в authorize.net

я использую authorize.net в качестве своего платежного шлюза, который принимает оплату с кредитной карты, код выглядит следующим образом

$ex=JRequest::getVar('exp2','');
$amount1=JRequest::getVar('amounttrue','');
if($amount1!="")
{
//echo"dsfgdsf";
$amount=$amount1;
//echo $amount;die;
}//echo $amount;die;
$post_url = "https://test.authorize.net/gateway/transact.dll";
$amount =$_POST['amount'];
$amount =$_POST['amounttrue'];
$card_num=$_POST['ccn'];
$first_name=$_POST['firstname'];
$last_name=$_POST['lastname'];
$address1=$_POST['address1'];
$state=$_POST['state'];
$zipcode=$_POST['zipcode'];
$ccname=$_POST['ccname'];
$db=&JFactory::getDBO();
$query="select * from #__book_gateway where id=1";
$db->setQuery($query);

$result=$db->loadObjectlist();
//print_r($result);die;
foreach($result as $info)
{ $login=$info->api_user_name;
$pass=$info->api_password;//die;
}//print_r($login);die;

$post_values = array(

// the API Login ID and Transaction Key must be replaced with valid values
"x_login" => "$login",
"x_tran_key" => "$pass",
//"x_login" => "52y88ZGH9f9",
//"x_tran_key" => "5rG9j97Ce46xAZzY",
/*"x_login" => "52y88ZGH9f1",
"x_tran_key" => "5rG9j97Ce46xAZzY",*/
"x_version" => "3.1",
"x_delim_data" => "TRUE",
"x_delim_char" => "|",
"x_relay_response" => "FALSE",

"x_type" => "AUTH_CAPTURE",
"x_method" => "CC",
//"x_card_num" => "4111111111111111",
"x_card_num" => "$card_num",
//"x_exp_date" => "0115",
"x_exp_date" => "$ex",
"x_amount" =>" $amount",
//"x_amount" => "19.99",
//"x_description" => "Sample Transaction",
"x_description" =>"$ccname",

//"x_first_name" => "John",
"x_first_name" =>"$first_name",
//"x_last_name" => "Doe",
"x_last_name" => "$last_name",
//"x_address" => "1234 Street",
"x_address" => "$address1",
//"x_state" => "WA",
"x_state" =>"$state",
//"x_zip" => "98004"
"x_zip" => "$zipcode"
//"x_market_type" => "2",
// "x_cpversion" => "1.0",
// "x_device_type"=>"7"
// Additional fields can be added here as outlined in the AIM integration
// guide at: http://developer.authorize.net
);

// This section takes the input fields and converts them to the proper format
// for an http post. For example: "x_login=username&x_tran_key=a1B2c3D4"
$post_string = "";
foreach( $post_values as $key => $value )
{ $post_string .= "$key=" . urlencode( $value ) . "&"; }
$post_string = rtrim( $post_string, "& " );

// The following section provides an example of how to add line item details to
// the post string. Because line items may consist of multiple values with the
// same key/name, they cannot be simply added into the above array.
//
// This section is commented out by default.
/*
$line_items = array(
"item1<|>golf balls<|><|>2<|>18.95<|>Y",
"item2<|>golf bag<|>Wilson golf carry bag, red<|>1<|>39.99<|>Y",
"item3<|>book<|>Golf for Dummies<|>1<|>21.99<|>Y");

foreach( $line_items as $value )
{ $post_string .= "&x_line_item=" . urlencode( $value ); }
*/

// This sample code uses the CURL library for php to establish a connection,
// submit the post, and record the response.
// If you receive an error, you may want to ensure that you have the curl
// library enabled in your php configuration
$request = curl_init($post_url); // initiate curl object
curl_setopt($request, CURLOPT_HEADER, 0); // set to 0 to eliminate header info from response
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1); // Returns response data instead of TRUE(1)
curl_setopt($request, CURLOPT_POSTFIELDS, $post_string); // use HTTP POST to send form data
curl_setopt($request, CURLOPT_SSL_VERIFYPEER, FALSE); // uncomment this line if you get no gateway response.
$post_response = curl_exec($request); // execute curl post and store results in $post_response
//print_r($post_response); die;
// additional options may be required depending upon your server configuration
// you can find documentation on curl options at http://www.php.net/curl_setopt
curl_close ($request); // close curl object

$response_array = explode($post_values["x_delim_char"],$post_response);
print_r($response_array);die;

Но приведенный выше код выдает ошибку «Невозможно принять платеж с этого типа рынка». Я просмотрел сеть, но не нашел решения.


person nilesh1006    schedule 02.11.2011    source источник


Ответы (2)


Какой тип учетной записи на authorize.net вы зарегистрировали? Розница или ECom?

Для розничных счетов требуется присутствие карты во время транзакции.

person Manse    schedule 02.11.2011
comment
Мне нужна учетная запись ecom, но я не уверен, для какой учетной записи я зарегистрировался. Пожалуйста, сообщите мне ссылку для регистрации учетной записи ecom. Потому что я хочу, чтобы пользователи платили, вводя только данные своей кредитной карты. Пожалуйста, помогите. я использовали следующую ссылку для регистрации тестовой учетной записи developer.authorize.net/testaccount - person nilesh1006; 02.11.2011

Вы видите эту ошибку, потому что вы случайно зарегистрировали розничную учетную запись вместо карты без учетной записи. Чтобы исправить это, либо снова зарегистрируйте карту без учетной записи, либо свяжитесь с Authnet, чтобы они изменили тип вашей учетной записи.

person John Conde    schedule 02.11.2011