MultiSafepay는 계약을 관리하고, 거래를 처리하고, 다양한 현지 및 국제 결제 방법에 대한 결제 금액을 징수하는 네덜란드 결제 서비스 제공업체입니다. 지금 바로 온라인 판매를 시작하고 모든 거래를 한 곳에서 관리하세요!
다음 작성기 명령을 실행하십시오.
composer require multisafepay/php-sdk
경고! 이 SDK는 Guzzle 또는 cURL에 직접적인 종속성을 갖지 않습니다 . 대신 PSR-18 클라이언트 추상화와 PSR-17 공장 추상화를 사용합니다. 이를 통해 사용할 PSR-7 구현 및 HTTP 클라이언트를 선택할 수 있습니다. 부작용 없이 모든 클라이언트를 교체할 수 있습니다.
클라이언트 구현이 설치되어 있지 않은 경우 다음을 실행하세요.
composer require guzzlehttp/guzzle
팩토리 구현이 설치되어 있지 않은 경우 다음을 실행하세요.
composer require http-interop/http-factory-guzzle
이제 다음을 설치했어야 합니다.
Composer 오토로더를 사용하여 클래스 종속성을 자동으로 로드합니다.
require ' vendor/autoload.php ' ;
그런 다음 사이트 API 키와 플래그를 사용하여 SDK를 인스턴스화하여 이것이 라이브 환경인지 테스트 환경인지 식별합니다.
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
SDK에서 다양한 관리자를 얻을 수 있습니다.
$ multiSafepaySdk -> getTransactionManager ();
$ multiSafepaySdk -> getGatewayManager ();
$ multiSafepaySdk -> getPaymentMethodManager ();
$ multiSafepaySdk -> getIssuerManager ();
$ multiSafepaySdk -> getCategoryManager ();
$ multiSafepaySdk -> getTokenManager ();
$ multiSafepaySdk -> getApiTokenManager ();
거래 관리자는 주문 및 환불을 생성할 수 있기 때문에 가장 중요합니다.
use MultiSafepay ValueObject Customer Country ;
use MultiSafepay ValueObject Customer Address ;
use MultiSafepay ValueObject Customer PhoneNumber ;
use MultiSafepay ValueObject Customer EmailAddress ;
use MultiSafepay ValueObject Money ;
use MultiSafepay Api Transactions OrderRequest Arguments CustomerDetails ;
use MultiSafepay Api Transactions OrderRequest Arguments PluginDetails ;
use MultiSafepay Api Transactions OrderRequest Arguments PaymentOptions ;
use MultiSafepay Api Transactions OrderRequest ;
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
$ orderId = ( string ) time ();
$ description = ' Order # ' . $ orderId ;
$ amount = new Money ( 2000 , ' EUR ' ); // Amount must be in cents!!
$ address = ( new Address ())
-> addStreetName ( ' Kraanspoor ' )
-> addStreetNameAdditional ( ' (blue door) ' )
-> addHouseNumber ( ' 39 ' )
-> addZipCode ( ' 1033SC ' )
-> addCity ( ' Amsterdam ' )
-> addState ( ' Noord Holland ' )
-> addCountry ( new Country ( ' NL ' ));
$ customer = ( new CustomerDetails ())
-> addFirstName ( ' John ' )
-> addLastName ( ' Doe ' )
-> addAddress ( $ address )
-> addEmailAddress ( new EmailAddress ( ' [email protected] ' ))
-> addPhoneNumber ( new PhoneNumber ( ' 0208500500 ' ))
-> addLocale ( ' nl_NL ' );
$ pluginDetails = ( new PluginDetails ())
-> addApplicationName ( ' My e-commerce application ' )
-> addApplicationVersion ( ' 0.0.1 ' )
-> addPluginVersion ( ' 1.1.0 ' );
$ paymentOptions = ( new PaymentOptions ())
-> addNotificationUrl ( ' http://www.example.com/client/notification?type=notification ' )
-> addRedirectUrl ( ' http://www.example.com/client/notification?type=redirect ' )
-> addCancelUrl ( ' http://www.example.com/client/notification?type=cancel ' )
-> addCloseWindow ( true );
$ orderRequest = ( new OrderRequest ())
-> addType ( ' redirect ' )
-> addOrderId ( $ orderId )
-> addDescriptionText ( $ description )
-> addMoney ( $ amount )
-> addGatewayCode ( ' IDEAL ' )
-> addCustomer ( $ customer )
-> addDelivery ( $ customer )
-> addPluginDetails ( $ pluginDetails )
-> addPaymentOptions ( $ paymentOptions );
$ transactionManager = $ multiSafepaySdk -> getTransactionManager ()-> create ( $ orderRequest );
$ transactionManager -> getPaymentUrl ();
환불 예시:
// Refund example.
use MultiSafepay Api Transactions RefundRequest ;
use MultiSafepay ValueObject Money ;
$ yourApiKey = ' your-api-key ' ;
$ isProduction = false ;
$ multiSafepaySdk = new MultiSafepay Sdk ( $ yourApiKey , $ isProduction );
$ orderId = XXXXX ; // The order ID of a previously completed transaction
$ refundAmount = new Money ( 2000 , ' EUR ' );
$ transactionManager = $ multiSafepaySdk -> getTransactionManager ();
$ transaction = $ transactionManager -> get ( $ orderId );
$ transactionManager -> refund ( $ transaction , ( new RefundRequest ())-> addMoney ( $ refundAmount ) );
전체 요청 작성의 예는 USAGE.md 및 tests/Functional/Api/Transactions
의 기능 테스트를 참조하세요.
엄격 모드:
비엄격 모드(기본값)는 일부 유효성 검사 오류를 건너뜁니다.
예: ShoppingCart
개체에 있는 총 항목 금액의 소수 자릿수와 전자상거래 플랫폼이 일치하지 않는 경우 엄격 모드에서는 MultiSafepayExceptionInvalidTotalAmountException
예외가 발생합니다.
코드 품질을 유지하기 위해 다음 검사가 시행됩니다.
./vendor/bin/phpcs --standard=phpcs.ruleset.xml .
)./vendor/bin/phpunit
을 통해)tests/Unit
).tests/Integration
).tests/Functional
)와 함께 작동합니다. – API 키가 필요합니다. 이 패키지에서 단위 테스트를 실행하려면 다음 안내를 따르세요.
composer install
실행하십시오../vendor/bin/phpunit tests/Unit
이 패키지에서 기능 테스트를 실행하려면 다음 안내를 따르세요.
composer install
실행하십시오..env.php.example
.env.php
에 복사하고 사이트 API 키를 추가하세요../vendor/bin/phpunit tests/Functional
단위 및 통합 테스트는 API 없이 실행됩니다. 이는 클라이언트가 모든 데이터 호출을 모의하고 있음을 의미합니다. 이를 위해 tests/fixture-data
폴더에는 호출을 스푸핑하는 JSON 파일이 포함되어 있습니다. 이 폴더를 실제 데이터로 채우려면 유효한 .env.php
파일이 있는지 확인한 후 다음 명령을 사용하십시오.
php tests/generateApiMocks.php
이렇게 하면 생성된 모든 JSON 파일이 git에 커밋되어 고정 장치로 사용됩니다. 테스트에 사용되지 않는 파일은 생성할 필요가 없습니다.
이 저장소에 문제를 생성하거나 [email protected]으로 이메일을 보내세요.
개선 사항을 제안하기 위해 끌어오기 요청을 작성하시면 감사의 표시로 MultiSafepay 기념품을 보내드립니다!
개방형 소프트웨어 라이선스(OSL 3.0)
MultiSafepay에서 일하는 데 관심이 있는 개발자이신가요? 채용공고를 확인하시고 편하게 연락주세요!