// Configuración inicial de PayU
PayU::$apiKey = PAYU_API_KEY;
PayU::$apiLogin = PAYU_API_LOGIN;
PayU::$merchantId = PAYU_ID_COMERCIO;
PayU::$language = SupportedLanguages::ES;
PayU::$isTest = PAYU_TEST;
// URL de pagos
Environment::setPaymentsCustomUrl(PAYU_API_URL_PAGOS);
// Autorización y captura:
// Consulta de disponibilidad y o reserva del saldo en la tarjeta de crédito
try
{
$params = array(
PayUParameters::ACCOUNT_ID => PAYU_ID_CUENTA,
PayUParameters::REFERENCE_CODE => md5($pedido->getNombreCliente()),
PayUParameters::DESCRIPTION => 'Pedido desde sitio web Next Level Entertainment (nextlevel.com.pe)',
// Costo del pedido
PayUParameters::VALUE => $_POST['total'],
PayUParameters::CURRENCY => 'PEN',
// Datos del comprador
PayUParameters::BUYER_NAME => $pedido->getNombreCliente(),
PayUParameters::BUYER_EMAIL => $pedido->getEmailCliente(),
PayUParameters::BUYER_CONTACT_PHONE => $pedido->getTelefonoCliente(),
// Datos del pagador
PayUParameters::PAYER_NAME => $pedido->getNombreEnTarjetaCredito(),
PayUParameters::PAYER_EMAIL => $pedido->getEmailCliente(),
PayUParameters::PAYER_CONTACT_PHONE => $pedido->getTelefonoCliente(),
// Tarjeta de crédito
PayUParameters::CREDIT_CARD_NUMBER => $pedido->getNumTarjetaCredito(),
PayUParameters::CREDIT_CARD_EXPIRATION_DATE => str_replace('-', '/', $pedido->getFechaExpiraciontarjetaCredito()),
PayUParameters::CREDIT_CARD_SECURITY_CODE => $pedido->getCVC2(),
PayUParameters::PAYMENT_METHOD => $payu_tcred,
PayUParameters::PROCESS_WITHOUT_CVV2 => $pedido->getCVC2() == '',
PayUParameters::INSTALLMENTS_NUMBER => 1, // Número de cuotas
PayUParameters::COUNTRY => PayUCountries::PE);
$rpta_pago = PayUPayments::doAuthorizationAndCapture($params); // Aquí el programa se detiene...
if ($rpta_pago)
{
var_dump($rpta_pago);
}
}
catch (PayUException $e)
{
header("Location: ../carrito.php?paso=5&error={$e->getMessage()}");
}
Hola Danilo,
¿La respuesta del error que te sale es similar a esta?
Fatal error: Uncaught exception 'PayUException' with message 'The number
of the credit card is not valid, credit card: [409744*******0043], type:
[VISA]' in E:\xampp\htdocs\sdkPHP\4.5.7\lib\PayU\util\PayUApiServiceUtil.php:67
Stack trace: #0 E:\xampp\htdocs\sdkPHP\4.5.7\lib\PayU\PayUPayments.php(196):
PayUApiServiceUtil::sendRequest(Object(stdClass), Object(PayUHttpRequestInfo))
#1 E:\xampp\htdocs\sdkPHP\4.5.7\lib\PayU\PayUPayments.php(84):
PayUPayments::doPayment(Array, 'AUTHORIZATION_A...', NULL) #2 E:\xampp\htdocs\sdkPHP\index_prueba.php(86):
PayUPayments::doAuthorizationAndCapture(Array) #3
E:\xampp\htdocs\sdkPHP\index_prueba.php(26): visaPeru() #4 {main} thrown in E:\xampp\htdocs\sdkPHP\4.5.7\lib\PayU\util\PayUApiServiceUtil.php on
line 67
Adicionalmente ten en cuenta que para los medios de pago de Perú no es necesario que captures los datos de tarjeta ya que para este país manejamos 3Dsecurity, por lo tanto el proceso de pago varía un poco, mira http://desarrolladores.payulatam.com/sdk-pagos/ en la sección de procesamiento de pagos, Perú.
// Configuración inicial de PayU
PayU::$apiKey = PAYU_API_KEY;
PayU::$apiLogin = PAYU_API_LOGIN;
PayU::$merchantId = PAYU_ID_COMERCIO;
PayU::$language = SupportedLanguages::ES;
PayU::$isTest = PAYU_TEST;
try
{
// Verificando disponibilidad del servicio
$hace_ping = PayUPayments::doPing(SupportedLanguages::ES);
// Más código...
}
catch (PayUException $e)
{
header("Location: ../carrito.php?paso=5&error={$e->getMessage()}");
}