Download the PHP package orkhanahmadov/yandex-checkout without Composer
On this page you can find all versions of the php package orkhanahmadov/yandex-checkout. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download orkhanahmadov/yandex-checkout
More information about orkhanahmadov/yandex-checkout
Files in orkhanahmadov/yandex-checkout
Package yandex-checkout
Short Description Easy and complete YooKassa (previously Yandex Checkout) integration for Laravel
License MIT
Homepage https://github.com/orkhanahmadov/yandex-checkout
Informations about the package yandex-checkout

Easy and complete YooKassa (previously Yandex Checkout) integration for Laravel
Todo
- Test coverage
Table of Contents
- Requirements
- Installation
- Usage
- Models
- Commands
- Events
- Configuration
Requirements
- PHP 7.3 or above
- Laravel 6 or above
Installation
You can install the package via composer:
Run this command to publish required migration file:
Usage
First, set Yandex Checkout shop ID and secret key in .env
file. You can get these from YooMoney merchant page.
To use Yandex Checkout service you need instance of Orkhanahmadov\YandexCheckout\YandexCheckoutService
.
You can instantiate this class using Laravel's service container, for example by injecting to your controller
Or you can use Laravel's service resolver to create instance of the class:
Available methods:
createPayment()
Creates new payment based on passed credentials and accepts 2 arguments:
Model
- Eloquent model payment is associatedPayment request
- Payment request that contains amount, currency, etc information
Method returns created instance of Orkhanahmadov\YandexCheckout\Models\YandexCheckout
model.
You should use $confirmation_url
property to get unique payment URL and redirect user to this URL to start payment.
paymentInfo()
Gets information on previously created payment. Accepts single argument:
Payment
- This is Yandex Checkout's payment id as a string, or instance of previously createdOrkhanahmadov\YandexCheckout\Models\YandexCheckout
model.
Method returns updated instance of Orkhanahmadov\YandexCheckout\Models\YandexCheckout
model with Yandex Checkout's response.
Models
Package ships with Orkhanahmadov\YandexCheckout\Models\YandexCheckout
Eloquent model.
Model stores following information for each payment:
payment_id
- string, unique payment key provided by Yandex Checkoutstatus
- string, payment status coderesponse
- array, serialized checkout object
Besides usual Eloquent functionality this model also has specific accessors, scopes and relationship abilities which you can utilize.
Accessors
succeeded
- Returnstrue
if payment marked as "succeeded",false
otherwisepaid
- Returnstrue
if checkout is paid,false
otherwiseconfirmation_url
- Returns "confirmation URL" which should be used to start paymentcancellation_reason
- Returns payment's cancellation/fail reason. Returnsnull
when payment is successful or not started yet
Scopes
succeeded()
- Filters "succeeded" payments onlypending()
- Filters "pending" payments only. Pending payments are the payments that has status other than "succeeded" or "canceled".
Relationship
You can make any existing Eloquent model "payable" and attach Yandex Checkouts to it.
Use Orkhanahmadov\YandexCheckout\Traits\HandlesYandexCheckout
trait in your existing model to establish direct model relationship.
Now Product
model has direct relationship with Yandex Checkouts.
By using HandlesYandexCheckout
your model also gets access to payment related relationships and payment methods.
createPayment()
yandexCheckouts()
Eloquent relationship method. Return all related Yandex Checkouts.
Commands
Package ships with artisan command for checking payment results.
Executing above command will loop through all "pending" checkouts and update their models.
Command also accepts payment ID as an argument to check single checkout result.
You can set up a Cron job schedule to frequently check all "pending" checkout.
Events
Package ships with Laravel events which gets fired on specific conditions.
Available event classes:
Orkhanahmadov\YandexCheckout\Events\CheckoutCreated
- gets fired when new checkout is createdOrkhanahmadov\YandexCheckout\Events\CheckoutSucceeded
- gets fired when payment status changes to "succeeded"Orkhanahmadov\YandexCheckout\Events\CheckoutCanceled
- gets fired when payment status changes to "canceled"Orkhanahmadov\YandexCheckout\Events\CheckoutChecked
- gets fired when payment information is checked
Each event receives instance of Orkhanahmadov\YandexCheckout\Models\YandexCheckout
Eloquent model as public $yandexCheckout
property.
You can set up event listeners to trigger when specific payment event gets fired.
Configuration
Run this command to publish package config file:
Config file contains following settings:
shop_id
- Defines Yandex Checkout's "shop ID", defaults to.env
variablesecret_key
- Defines Yandex Checkout's "secret key", defaults to.env
variabletable_name
- Defines name for Yandex Checkout payments database table. Default: "yandex_checkouts"events
- Payment events related settingscreated
- "Checkout created" event class. By default usesOrkhanahmadov\YandexCheckout\Events\CheckoutCreated
classsucceeded
- "Checkout succeeded" event class. By default usesOrkhanahmadov\YandexCheckout\Events\CheckoutSucceeded
classcanceled
- "Checkout canceled" event class. By default usesOrkhanahmadov\YandexCheckout\Events\CheckoutCanceled
classchecked
- "Checkout checked" event class. By default usesOrkhanahmadov\YandexCheckout\Events\CheckoutChecked
class
If you want to use your own event class for specific payment event you can replace class namespace with your class namespace.
Each checkout event receives instance of Orkhanahmadov\YandexCheckout\Models\YandexCheckout
Eloquent model.
Because of this, make sure you add payment model as dependency to your event class constructor signature or
you can extend Orkhanahmadov\YandexCheckout\Events\CheckoutEvent
class which already has payment model as dependency.
Setting specific payment event to null
disables that event.
Testing
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Orkhan Ahmadov
- LinksDerIsar
- All Contributors
License
The MIT License (MIT). Please see License File for more information.
All versions of yandex-checkout with dependencies
illuminate/container Version ^6.0|^7.0|^8.0|^9.0
illuminate/contracts Version ^6.0|^7.0|^8.0|^9.0
illuminate/database Version ^6.0|^7.0|^8.0|^9.0
illuminate/queue Version ^6.0|^7.0|^8.0|^9.0
illuminate/support Version ^6.0|^7.0|^8.0|^9.0
yoomoney/yookassa-sdk-php Version ^2.0