cmdconfig / robokassa-bundle
robokassa support for symfony2
Installs: 475
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 3
Type:symfony-bundle
Requires
- php: >=5.3.2
- symfony/form: ~2.1
- symfony/framework-bundle: ~2.1
- twig/twig: ~1.5
This package is not auto-updated.
Last update: 2024-12-11 09:21:18 UTC
README
current version supports only POST methods
Installation
php composer.phar require jh9/robokassa-bundle
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new jh9\RobokassaBundle\jh9RobokassaBundle(), ); }
# app/config/config.yml jh9_robokassa: login: %login% password1: %password1% password2: %password2% test: %test% # default to true
Usage
in your template (to generate the "pay" button):
#pay_order.html.twig {{ jh9_robokassa_form(order.id, order.price {# (optional) , { "template": "jh9RobokassaBundle:Twig:payForm.html.twig", {# default #} "Desc": "my description", {# default null #} "IncCurrLabel": "WMZM", {# default null #} "Encoding": "utf-8" {# default #} } #} ) }}
in your result action:
/** * @Route("/ResultUrl") * @Methods({"POST"}) */ public function resultAction(Request $request) { $manager = $this->get('jh9.robokassa.manager'); $result = $manager->handleResult($request); if ($result->isValid()) { // ... // your success logic, such as set your order as paid /* $em = $this->get('doctrine.orm.default_entity_manager'); $order = $em->find('jh9ShopProductBundle:Order', $result->getInvId()); if (! $order) { return $this->createNotFoundException(); } $order->setStatus(OrderTypes::STATUS_PAYED); */ return new Response(); } else { return new Response('Not valid', 500); } }
in your success action you can do:
/** * @Route("/SuccessUrl") * @Methods({"POST"}) */ public function robokassaSuccessAction(Request $request) { $manager = $this->get('jh9.robokassa.manager'); $payResult = $manager->handleSuccess($request); if (! $payResult->isValid()) { return new Response('not valid', 400); } return new Response( "Your order with id = " . $payResult->getInvId() . " is paid" . " , amount = " $payResult->getOutSum() . " your language is" . $payResult->getCulture() ); }
in your fail action:
/** * @Route("/payment/fail") * @Methods({"POST"}) */ public function robokassaFailAction(Request $request) { $payResult = $this->get('jh9.robokassa.manager')->handleFail($request); return new Response( " Your order with id " . $payResult->getInvId() . " is not paid" . " amount: " . $payResult->getOutSum() ); }
Template
to rewrite default template put your own to app/Resources/jh9RobokassaBundle/views/Twig/payForm.html.twig
# app/Resources/jh9RobokassaBundle/views/Twig/payForm.html.twig {{ form_start(form) }} {{ form_widget(form) }} <div> <button type="submit" class="btn btn-primary"> ROBOKASSA </button> </div> {{ form_end(form) }}
or set 'template' option in robokassa form call:
{{ jh9_robokassa_form( order.id, order.price, { 'template': "AcmeBundle:RobokassaTemplate:myTemplate.html.twig } }}