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 團隊手工製作的可愛作品
歡迎貢獻、問題和功能請求!
請隨時檢查問題頁面。
如果這個項目對您有幫助,請給個讚!