Paquete Packagist (biblioteca) para brindar a cualquier sitio web basado en PHP acceso a la interfaz de VictoriaBank (República de Moldavia) que los sistemas comerciales utilizan para procesar transacciones de comercio electrónico basadas en tarjetas de crédito utilizando el método de publicación de formularios estándar CGI/WWW. Esta interfaz admite de forma transparente varios protocolos de autenticación de titulares de tarjetas, como 3-D Secure y Secure Code, así como transacciones comerciales SSL heredadas no autenticadas.
composer require fruitware/victoria-bank-gateway
Puedes usar uno de los paquetes de compositor.
composer require vlucas/phpdotenv
o
composer require symfony/dotenv
archivo .env
# Merchant ID assigned by bank
VICTORIA_BANK_MERCHANT_ID =xxxxxxxxxxxxxxx
# Merchant Terminal ID assigned by bank
VICTORIA_BANK_MERCHANT_TERMINAL =xxxxxxxx
# Merchant primary web site URL
VICTORIA_BANK_MERCHANT_URL = ' http://example.com '
# Merchant name (recognizable by cardholder)
VICTORIA_BANK_MERCHANT_NAME = ' Merchant company name '
# Merchant company registered office address
VICTORIA_BANK_MERCHANT_ADDRESS = ' Merchant address '
# Security options - provided by the bank
VICTORIA_BANK_SECURITY_SIGNATURE_FIRST = ' 0001 '
VICTORIA_BANK_SECURITY_SIGNATURE_PREFIX = ' A00B00C00D00EA864886F70D020505000410 '
VICTORIA_BANK_SECURITY_SIGNATURE_PADDING = ' 00 '
# Merchant public rsa key
VICTORIA_BANK_MERCHANT_PUBLIC_KEY =public.pem
# Merchant private rsa key
VICTORIA_BANK_MERCHANT_PRIVATE_KEY =private.pem
# The public part of the bank key that P_SIGN is encrypted in the response in PEM format.
VICTORIA_BANK_MERCHANT_BANK_PUBLIC_KEY =victoria_pub.pem
# Default Merchant shop timezone
# Used to calculate the timezone offset sent to VictoriaBank
VICTORIA_BANK_MERCHANT_TIMEZONE_NAME = ' Europe/Chisinau '
# Merchant shop 2-character country code.
# Must be provided if merchant system is located
# in a country other than the gateway server's country.
VICTORIA_BANK_MERCHANT_COUNTRY_CODE =MD
# Default currency for all operations: 3-character currency code
VICTORIA_BANK_MERCHANT_DEFAULT_CURRENCY =MDL
# Default forms language
# By default are available forms in en, ro, ru.
# If need forms in another languages please contact gateway
# administrator
VICTORIA_BANK_MERCHANT_DEFAULT_LANGUAGE =ro
<?php
use Fruitware VictoriaBankGateway VictoriaBankGateway ;
$ VictoriaBankGateway = new VictoriaBankGateway ();
$ certDir = ' /path/to/cert/dir ' ;
$ VictoriaBankGateway
-> configureFromEnv ( $ certDir )
;
Puede reproducir la implementación del método configureFromEnv()
<?php
use Fruitware VictoriaBankGateway VictoriaBankGateway ;
$ backRefUrl = getenv ( ' VICTORIA_BANK_MERCHANT_URL ' ). ' /after-payment/ ' ;
/** @var VictoriaBankGateway $ VictoriaBankGateway */
$ VictoriaBankGateway
-> requestAuthorization ( $ orderId = 1 , $ amount = 1 , $ backRefUrl , $ currency = null , $ description = null , $ clientEmail = null , $ language = null )
;
<?php
use Fruitware VictoriaBankGateway VictoriaBankGateway ;
use Fruitware VictoriaBankGateway VictoriaBank Exception ;
use Fruitware VictoriaBankGateway VictoriaBank Response ;
use Fruitware VictoriaBankGateway VictoriaBank AuthorizationResponse ;
/** @var VictoriaBankGateway $ VictoriaBankGateway */
$ bankResponse = $ VictoriaBankGateway -> getResponseObject ( $ _POST );
if (! $ bankResponse -> isValid ()) {
throw new Exception ( ' Invalid bank Auth response ' );
}
switch ( $ bankResponse :: TRX_TYPE ) {
case VictoriaBankGateway :: TRX_TYPE_AUTHORIZATION :
$ amount = $ bankResponse ->{Response:: AMOUNT };
$ bankOrderCode = $ bankResponse ->{Response:: ORDER };
$ rrn = $ bankResponse ->{Response:: RRN };
$ intRef = $ bankResponse ->{Response:: INT_REF };
#
# You must save $rrn and $intRef from the response here for reversal requests
#
# Funds locked on bank side - transfer the product/service to the customer and request completion
$ VictoriaBankGateway -> requestCompletion ( $ bankOrderCode , $ amount , $ rrn , $ intRef , $ currency = null );
break ;
case VictoriaBankGateway :: TRX_TYPE_COMPLETION :
# Funds successfully transferred on bank side
break ;
case VictoriaBankGateway :: TRX_TYPE_REVERSAL :
# Reversal successfully applied on bank size
break ;
default :
throw new Exception ( ' Unknown bank response transaction type ' );
}
$rrn
y $intRef
deben guardarse en el paso 4
<?php
use Fruitware VictoriaBankGateway VictoriaBankGateway ;
/** @var VictoriaBankGateway $ VictoriaBankGateway */
$ VictoriaBankGateway
-> requestReversal ( $ orderId = 1 , $ amount = 1 , $ rrn = ' xxx ' , $ intRef = ' yyy ' , $ currency = null )
;
? Precioso hecho a mano por el equipo de Fruitware.
¡Las contribuciones, los problemas y las solicitudes de funciones son bienvenidos!
No dude en consultar la página de problemas.
¡Dale un si este proyecto te ayudó!