Especially for ? Zorra Telecom and Evenyone Else
Attendation: At the Moment the Number of Methods IS Very Limited, They Will Be Added Later IF QIWI DOCE NOT MAKE A NORMAL ALTERNATIVE ... Attention: At the moment, the number of methods will be very limited, they will be added later if they are added later if Qiwi will not make a normal alternative ...
Request creates a payment account.
PUT /payin/v1/sites/{siteId}/bills/{billId}
The request is intended to receive payment details. In a successful answer, a list of data on the account and its payments with the requested Billid comes.
GET /payin/v1/sites/{siteId}/bills/{billId}/details
Obtaining a list of payments on the account
GET /payin/v1/sites/{siteId}/bills/{billId}
You can use: account status
The request creates a payment transaction.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}
Until it came in handy
Get information about the payment transaction.
GET /payin/v1/sites/{siteId}/payments/{paymentId}
Until it came in handy
You can use: account status
After successfully undergoing additional authentication, TSP must send a request with the parameters with the corresponding type of additional authentication to complete the audit.
POST /payin/v1/sites/{siteId}/payments/{paymentId}/complete
Until it came in handy
Confirms the payment after holding funds. If a two -step scenario is used, then the merchant needs to send this request after the authorization of the payment.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}/captures/{captureId}
Until it came in handy
Describes the status of the specified confirmation of the payment.
GET /payin/v1/sites/{siteId}/payments/{paymentId}/captures/{captureId}
Until it came in handy
The request is intended to return the funds on the final payment. TSP can fulfill several requests to return partial amounts.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}/refunds/{refundId}
Until it came in handy
composer require terentev-space/qiwi-php-client // Factories
$ configFactory = new QiwiClient Factories ConfigFactory ();
$ clientFactory = new QiwiClient Factories ClientFactory ();
// Make Config
$ config = $ configFactory -> make (
' siteId ' ,
' token ' ,
' publicKey ' // optional
);
/* OR */
$ config = new QiwiClient Entities ClientConfig (
' siteId ' ,
' publicKey ' ,
' token '
);
// Make Client
$ client = $ clientFactory -> make (
' siteId ' ,
' token ' ,
' publicKey ' // optional
);
/* OR */
$ client = Qiwi:: client (
' siteId ' ,
' token '
);
/* OR */
$ client = new QiwiClient Client (
$ config ,
new GuzzleHttp Client (),
new Psr Log NullLogger ()
); $ billId = ' ... ' ;
$ amount = 1.01 ;
/* OR */
$ amount = 1.019 ; // = 1.01
$ currency = Qiwi:: CURRENCY_RUB ;
/* OR */
$ currency = ' RUB ' ;
$ expiration = null ; // +1 day
/* OR */
$ expiration = ' 2022-01-01T00:00:00+00:00 ' ;
/* OR */
$ expiration = new DateTime ();
/* OR */
$ expiration = $ datetime -> format ( QiwiClient Qiwi:: DATETIME_FORMAT );
$ flags = [
QiwiClient Qiwi:: FLAG_SALE , // optional
QiwiClient Qiwi:: FLAG_BIND_PAYMENT_TOKEN , // optional
];
$ account = ' string(64) - id ' ;
$ email = ' string(64) or null - email ' ;
$ phone = ' string(15) or null - phone ' ;
$ country = ' string(1000) or null ' ;
$ city = ' string(1000) or null ' ;
$ region = ' string(1000) or null ' ;
$ details = ' string(1000) or null ' ;
$ pan = ' string(19) or null ' ;
$ wallet = ' string(64) or null ' ;
$ inn = ' string(12) or null ' ;
$ phone = ' string(15) or null ' ;
$ bankAccount = ' string(20) or null ' ;
$ bic = ' string(9) or null ' ;
$ cf1 = ' string(256) or null ' ;
$ cf2 = ' string(256) or null ' ;
$ cf3 = ' string(256) or null ' ;
$ cf4 = ' string(256) or null ' ;
$ cf5 = ' string(256) or null ' ;
$ merchantThemeCode = ' string(256) or null ' ;
$ merchantContractId = ' string(256) or null ' ;
$ merchantBookingNumber = ' string(256) or null ' ;
$ merchantPhone = ' string(256) or null ' ;
$ merchantFullName = ' string(256) or null ' ;
$ invoiceCallbackUrl = ' string(256) or null ' ;
/** @var array $cheque Данные чека для операции. */
$ cheque = [ /* ... */ ];
$ request = PaySiteBillQuery:: make ( $ billId , $ amount , $ currency )
-> setExpirationDateTime ( $ expiration ) // optional
-> setFlags (... $ flags ) // optional
-> setCustomer (
$ account ,
$ email , // optional
$ phone // optional
) // optional
-> setAddress (
$ country , // optional
$ city , // optional
$ region , // optional
$ details // optional
) // optional
-> setReceiverData (
$ pan , // optional
$ wallet , // optional
$ inn , // optional
$ phone , // optional
$ bankAccount , // optional
$ bic // optional
) // optional
-> setCustomFields (
$ cf1 , // optional
$ cf2 , // optional
$ cf3 , // optional
$ cf4 , // optional
$ cf5 , // optional
$ merchantThemeCode , // optional
$ merchantContractId , // optional
$ merchantBookingNumber , // optional
$ merchantPhone , // optional
$ merchantFullName , // optional
$ invoiceCallbackUrl // optional
) // optional
-> setCheque ( $ cheque )
;
/* OR */
$ request = [
' billId ' => $ billId ,
' amount ' => [
' value ' => $ amount ,
' currency ' => $ currency ,
],
' expirationDateTime ' => $ expiration ,
' flags ' => $ flags ,
' customer ' => [
' account ' => $ account ,
' email ' => $ email ,
' phone ' => $ phone ,
],
' address ' => [
' country ' => $ country ,
' city ' => $ city ,
' region ' => $ region ,
' details ' => $ details ,
],
' receiverData ' => [
' pan ' => $ pan ,
' wallet ' => $ wallet ,
' inn ' => $ inn ,
' phone ' => $ phone ,
' bankAccount ' => $ bankAccount ,
' bic ' => $ bic ,
],
' customFields ' => [
' cf1 ' => $ cf1 ,
' cf2 ' => $ cf2 ,
' cf3 ' => $ cf3 ,
' cf4 ' => $ cf4 ,
' cf5 ' => $ cf5 ,
' merchantThemeCode ' => $ merchantThemeCode ,
' merchantContractId ' => $ merchantContractId ,
' merchantBookingNumber ' => $ merchantBookingNumber ,
' merchantPhone ' => $ merchantPhone ,
' merchantFullName ' => $ merchantFullName ,
' invoiceCallbackUrl ' => $ invoiceCallbackUrl ,
],
' cheque ' => $ cheque ,
];
$ response = $ client -> paySiteBill ( $ request );
$ response -> getCode (); // Response code 200
$ response -> getBody (); // Response data array
/** @var QiwiClientEntitiesResultsPaySiteBillResult $data */
$ data = $ response -> parseData ();
// ...
$ billId = $ data -> getBillId ();
// 1.01
$ amount = $ data -> getAmountValue ();
// RUB
$ currency = $ data -> getAmountCurrency ();
// 2000-00-00T00:00:00+00:00
$ exp = $ data -> getExpirationDateTime ();
// 00000000-0000-0000-0000-000000000000
$ invoice = $ data -> getInvoiceUid ();
// CREATED
$ status = $ data -> getStatusValue ();
// 2000-00-00T00:00:00+00:00
$ statusChanged = $ data -> getStatusChangedDateTime ();
// https://oplata.qiwi.com/form?invoiceUid=00000000-0000-0000-0000-000000000000
$ url = $ data -> getPayUrl ();
$ response = $ client -> getSiteBillDetails ( ' 1663126085 ' );
$ response -> getCode (); // Response code 200
$ response -> getBody (); // Response data array
/** @var QiwiClientEntitiesResultsGetSiteBillDetailsResult $data */
$ data = $ response -> parseData ();
// ...
$ billId = $ data -> getBillId ();
// 1.01
$ amount = $ data -> getAmountValue ();
// RUB
$ currency = $ data -> getAmountCurrency ();
// CREATED
$ status = $ data -> getStatusValue ();
// 2000-00-00T00:00:00+00:00
$ statusChanged = $ data -> getStatusChangedDateTime ();
/* ... */
// https://oplata.qiwi.com/form?invoiceUid=00000000-0000-0000-0000-000000000000
$ url = $ data -> getPayUrl ();
/** @var QiwiClientEntitiesItemsSiteBillPayment $payment */
$ payment = $ data -> getPayments ()[ 0 ];
// siteId
$ siteId = $ payment -> getSiteId ();
// ...
$ billId = $ payment -> getBillId ();
// 1.01
$ amount = $ payment -> getAmountValue ();
// RUB
$ currency = $ payment -> getAmountCurrency ();
// CREATED
$ status = $ payment -> getStatusValue ();
/* ... */
// []
$ status = $ payment -> getCustomFields ();docker build -t "qiwi-php-client" .docker run -it -v $(pwd):/qiwi-php-client qiwi-php-client bashcomposer install in the containerphpunit.xml.dist file to phpunit.xml for its operation./vendor/bin/phpunit The Mit License. Please See License File for More Information.