chub / interkassa-bundle
Bundle to integrate interkassa payment system to your Symfony2 project
Installs: 28
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 2
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: >=5.3
- symfony/form: >=2.1
- symfony/framework-bundle: >=2.1, <2.3.*-dev
- symfony/twig-bundle: >=2.1
- symfony/yaml: >=2.1
- twig/extensions: 1.0.*
- twig/twig: >=1.5
Requires (Dev)
- symfony/browser-kit: >=2.1
- symfony/class-loader: >=2.1
- symfony/css-selector: >=2.1
- symfony/finder: 2.*
This package is not auto-updated.
Last update: 2024-11-09 14:09:17 UTC
README
Symfony2 InterkassaBundle allows us to get user payments using Interkassa system. Interkassa is the one of the biggest payment system integrator in Russia and Ukraine.
Installation
Use composer
Add "chub/interkassa-bundle": "*"
to your required
section of composer.json and run php composer.phar update
.
Register your bundle
Add it to your kernel
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new ChubProduction\InterkassaBundle\InterkassaBundle(), ); // ... }
Configuration
Add interkassa section to your app\config.yml
interkassa: connections: # contain shop descriptions intercassa: shop_id: ololo # Shop id (you can get it in your profile) secret_key: ololo # Secret key (you can get it in your profile) fail_url: /profile/balance # Url to redirect user on transaction fail success_url: /profile/balance # Url to redirect user on transaction success #another_shop: # ....
Add some routes:
payment_status: pattern: /payment/status/{connection} defaults: { _controller: InterkassaBundle:Payment:status } payment_success: pattern: /payment/success/{connection} defaults: { _controller: InterkassaBundle:Payment:success } payment_fail: pattern: /payment/fail/{connection} defaults: { _controller: InterkassaBundle:Payment:fail }
Usage
- Create your payment item class
<?php //.. use ChubProduction\InterkassaBundle\Entity\Payment; use ChubProduction\InterkassaBundle\Service\PaymentItemInterface; class PaymentItem implements PaymentItemInterface { public function getAmount() { // return '1.00'; } public function getDescription() { // return 'ololo'; } public function setPayment(Payment $p) { // TODO: Implement setPayment() method. } }
- Create a payment object
$po = new PaymentItem();
- Redirect user to pay
// Somewhere in your Action $response = $this->get('payment')->createInvoice($po, 'intercassa'); return $response
- Check status of the payment
$po->getPayment()->isPaid();
Event system
You can also register your own event subscriber/dispatcher to handle invoice creation, successful or failed transaction.
There are InterkassaPaymentEvent
object and InterkassaPaymentEvent::ON_INVOICE
,
InterkassaPaymentEvent::ON_STATUS_SUCCESS
, InterkassaPaymentEvent::ON_STATUS_FAIL
events for this