Surtout pour ? Zorra Telecom et Evenyone Else
Association: Pour le moment, le nombre de méthodes est très limité, ils seront ajoutés plus tard si qiwi ne fera pas une alternative normale ... Attention: Pour le moment, le nombre de méthodes sera très limité, ils seront ajoutés plus tard s'ils seront ajoutés plus tard si Qiwi ne fera pas une alternative normale ...
La demande crée un compte de paiement.
PUT /payin/v1/sites/{siteId}/bills/{billId}
La demande est destinée à recevoir les détails du paiement. Dans une réponse réussie, une liste de données sur le compte et ses paiements avec le Billid demandé arrivent.
GET /payin/v1/sites/{siteId}/bills/{billId}/details
Obtention d'une liste de paiements sur le compte
GET /payin/v1/sites/{siteId}/bills/{billId}
Vous pouvez utiliser: statut de compte
La demande crée une transaction de paiement.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}
Jusqu'à ce qu'il soit utile
Obtenez des informations sur la transaction de paiement.
GET /payin/v1/sites/{siteId}/payments/{paymentId}
Jusqu'à ce qu'il soit utile
Vous pouvez utiliser: statut de compte
Après avoir subi une authentification supplémentaire, TSP doit envoyer une demande avec les paramètres avec le type correspondant d'authentification supplémentaire pour terminer l'audit.
POST /payin/v1/sites/{siteId}/payments/{paymentId}/complete
Jusqu'à ce qu'il soit utile
Confirme le paiement après avoir détenu des fonds. Si un scénario à deux étapes est utilisé, le marchand doit envoyer cette demande après l'autorisation du paiement.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}/captures/{captureId}
Jusqu'à ce qu'il soit utile
Décrit l'état de la confirmation spécifiée du paiement.
GET /payin/v1/sites/{siteId}/payments/{paymentId}/captures/{captureId}
Jusqu'à ce qu'il soit utile
La demande est destinée à retourner les fonds sur le paiement final. TSP peut répondre à plusieurs demandes de retour des montants partiels.
PUT /payin/v1/sites/{siteId}/payments/{paymentId}/refunds/{refundId}
Jusqu'à ce qu'il soit utile
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 dans le conteneurphpunit.xml.dist sur phpunit.xml pour son opération./vendor/bin/phpunit La licence MIT. Veuillez consulter le fichier de licence pour plus d'informations.