soleniye / yoomoney-sdk-php
Yoomoney API SDK for PHP
1.0.0
2021-05-22 13:40 UTC
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: 3.7.*
README
Requirements
PHP 5.3 or above
Links
Getting started
Installation
- Add
"soleniye/yoomoney-sdk-php": "1.0.*"
tocomposer.json
of your application. Or clone repo to your project. - If you are using composer - simply use
require_once 'vendor/autoload.php';
otherwise paste following coderequire_once '/path/to/cloned/repo/lib/api.php';
Payments from the Yoomoney wallet
Using Yoomoney API requires following steps
-
Obtain token URL and redirect user's browser to Yoomoney service. Note:
client_id
,redirect_uri
,client_secret
are constants that you get, when register app in Yoomoney API.use \YooMoney\API; $auth_url = API::buildObtainTokenUrl($client_id, $redirect_uri, $scope);
-
After that, user fills Yoomoney HTML form and user is redirected back to
REDIRECT_URI?code=CODE
. -
You should immediately exchange
CODE
withACCESS_TOKEN
.$access_token_response = API::getAccessToken($client_id, $code, $redirect_uri, $client_secret=NULL); if(property_exists($access_token_response, "error")) { // process error } $access_token = $access_token_response->access_token;
-
Now you can use Yoomoney API.
$api = new API($access_token); // get account info $acount_info = $api->accountInfo(); // check status // get operation history with last 3 records $operation_history = $api->operationHistory(array("records"=>3)); // check status // make request payment $request_payment = $api->requestPayment(array( "pattern_id" => "p2p", "to" => $money_wallet, "amount_due" => $amount_due, "comment" => $comment, "message" => $message, "label" => $label, )); // check status // call process payment to finish payment $process_payment = $api->processPayment(array( "request_id" => $request_payment->request_id, ));
Side notes
- Library throws exceptions in case of
- response status isn't equal 2**
- I/O error(see requests)
- If you register app and fill
CLIENT_SECRET
entry then you should provide$client_secret
explicitly where$client_secret=NULL
- You should wrap all passed boolean values in quotes(because php converts them to numbers otherwise). For example:
API($access_token).requestPayment(array( test_payment => "true", // other params ));
Running tests
- Clone this repo.
- Install composer
- Run
composer install
- Make sure
phpunit
executable is present in your$PATH
- Create
tests/constants.php
withCLIENT_ID
,CLIENT_SECRET
andACCESS_TOKEN
constants. - Run tests
phpunit --bootstrap vendor/autoload.php tests/