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.
Add "chub/interkassa-bundle": "*" to your required section of composer.json and run php composer.phar update.
Add it to your kernel
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new ChubProduction\InterkassaBundle\InterkassaBundle(),
);
// ...
}
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 }
<?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.
}
}
$po = new PaymentItem();
// Somewhere in your Action
$response = $this->get('payment')->createInvoice($po, 'intercassa');
return $response
$po->getPayment()->isPaid();
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
How can I help you explore Laravel packages today?