2015-11-17 2 views
0

Я пошел по ссылке для оплаты https://github.com/AuthorizeNet/sdk-php , но ответ «Ошибка аутентификации пользователя из-за недопустимых значений аутентификации». Код работает для разработчика, но он не работает для разработчика, но не работает для реальной учетной записи.Оплата с помощью authorize.net дает ошибку Ошибка аутентификации пользователя из-за недопустимых значений аутентификации

require 'authorizesdk/vendor/autoload.php'; 
use net\authorize\api\contract\v1 as AnetAPI; 
use net\authorize\api\controller as AnetController; 

define("AUTHORIZENET_LOG_FILE","phplog"); 
/** Make sure that the WordPress bootstrap has run before continuing. */ 
require(dirname(__FILE__) . '/wp-load.php'); 
global $wpdb; 
if (is_user_logged_in()) { 
    $user_ID = get_current_user_id(); 
} 

$creditcardno=$_POST['credit_card_number']; 
$expdate=$_POST['year'].'-'.$_POST['month']; 
$invoiceno=$_POST['x_invoice_num']; 
$description=$_POST['x_description']; 
$id=$_POST['x_id']; 
$email=$_POST['x_email']; 
//$creditcardno=''; 
//$expdate='16/06'; 
//$invoiceno=$_POST['x_invoice_num']; 
//$description=$_POST['x_description']; 
//$id=$_POST['x_id']; 
//$email=$_POST['x_email']; 


//44Wz7d8Zsr2F5zD6 
// Common setup for API credentials 
    $merchantAuthentication = new AnetAPI\MerchantAuthenticationType(); 
    $merchantAuthentication->setName("5Tb3S44sLp"); 
    $merchantAuthentication->setTransactionKey("****"); 
    $refId = 'ref' . time(); 

// Create the payment data for a credit card 
    $creditCard = new AnetAPI\CreditCardType(); 
    $creditCard->setCardNumber($_POST['credit_card_number']); 
    $creditCard->setExpirationDate($expdate); 
    $paymentOne = new AnetAPI\PaymentType(); 
    $paymentOne->setCreditCard($creditCard); 

    // Order info 
    $order = new AnetAPI\OrderType(); 
    $order->setInvoiceNumber($invoiceno); 
    $order->setDescription($description); 

    // Customer info 
    $customer = new AnetAPI\CustomerDataType(); 
    $customer->setId($id); 
    $customer->setEmail($mail); 

    // Bill To 
    $billto = new AnetAPI\CustomerAddressType(); 
    $billto->setFirstName($_POST['credit_card_fname']); 
    $billto->setLastName($_POST['credit_card_lname']); 
    $billto->setCompany($_POST['x_company']); 
    $billto->setAddress($_POST['x_address']); 
    $billto->setCity($_POST['x_city']); 
    $billto->setState($_POST['x_state']); 
    $billto->setZip($_POST['x_zip']); 
    $billto->setCountry($_POST['x_country']); 

// Create a transaction 
    $transactionRequestType = new AnetAPI\TransactionRequestType(); 
    $transactionRequestType->setTransactionType("authCaptureTransaction"); 
// $transactionRequestType->setAmount($_POST['x_amount']); 
    $transactionRequestType->setAmount($_POST['x_amount']); 
    $transactionRequestType->setPayment($paymentOne); 
    $transactionRequestType->setOrder($order); 
    $transactionRequestType->setCustomer($customer); 
    $transactionRequestType->setBillTo($billto); 

    $request = new AnetAPI\CreateTransactionRequest(); 
    $request->setMerchantAuthentication($merchantAuthentication); 
    $request->setRefId($refId); 
    $request->setTransactionRequest($transactionRequestType); 
    $controller = new AnetController\CreateTransactionController($request); 
    $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); 
echo '<pre>'; 
var_dump($response);exit; 

Есть ли что-то, что нам нужно для правильной настройки для реальной учетной записи.

+0

Вы пытаетесь использовать учетные данные вашей песочницы на производстве? Если это так, это не сработает. – rhldr

+0

нет нет Я изменил учетные данные для проживания –

+0

Я бы предположил, что у вас есть правильный идентификатор входа в систему и код транзакции для производственной учетной записи. Если вам нужно создать новый ключ транзакции производства, вы должны сделать это в интерфейсе продавца на странице https://account.authorize.net – rhldr

ответ

3

Я вижу, проблема здесь в том, что вы установили живые учетные данные API, но окружающую среду API еще набор для песочницы,

За то, что вам нужно изменить последнюю 3-ю строчку из

$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); 

к

$response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION); 

это позволит решить эту проблему.

Смежные вопросы