VictoriaBankGateway
Ongoing release
Packagist 软件包(库)使任何基于 php 的网站都可以访问 VictoriaBank(摩尔多瓦共和国)的界面,商家系统使用该界面使用标准 CGI/WWW 表单发布方法来处理基于信用卡的电子商务交易。该接口透明地支持各种持卡人身份验证协议,例如 3-D 安全和安全代码以及传统的未经身份验证的 SSL 商业交易。
composer require fruitware/victoria-bank-gateway
您可以使用作曲家包之一
composer require vlucas/phpdotenv
或者
composer require symfony/dotenv
.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 )
;
您可以重现 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
和$intRef
必须在步骤 4 中保存
<?php
use Fruitware VictoriaBankGateway VictoriaBankGateway ;
/** @var VictoriaBankGateway $ VictoriaBankGateway */
$ VictoriaBankGateway
-> requestReversal ( $ orderId = 1 , $ amount = 1 , $ rrn = ' xxx ' , $ intRef = ' yyy ' , $ currency = null )
;
? Fruitware 团队手工制作的可爱作品
欢迎贡献、问题和功能请求!
请随时检查问题页面。
如果这个项目对您有帮助,请给个赞!