PageRenderTime 40ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/www/protected/modules/shop/controllers/OrderController.php

https://bitbucket.org/badenkov/demo
PHP | 107 lines | 69 code | 15 blank | 23 comment | 2 complexity | 7507d248b2235e2b83a1eaca14b19fba MD5 | raw file
Possible License(s): Apache-2.0, MIT, LGPL-2.1, BSD-2-Clause, CC-BY-SA-3.0, BSD-3-Clause
  1. <?php
  2. class OrderController extends Controller
  3. {
  4. /**
  5. * Перенаправляет пользователя на страницу в соответствии с выбранным
  6. * способом оплаты.
  7. */
  8. public function actionIndex($id)
  9. {
  10. $order = Yii::app()->identityMap->loadModel('Order', $id);
  11. $paymentProccessMethod = 'proccess'.ucwords($order->payment_type);
  12. if (method_exists($this, $paymentProccessMethod)) {
  13. $this->{$paymentProccessMethod}($order);
  14. } else {
  15. $this->redirect(array('view', 'id' => $order->id));
  16. }
  17. }
  18. /**
  19. * Отображает пользователю что все прошло успешно.
  20. */
  21. public function actionView($id)
  22. {
  23. //if (!Yii::app()->user->hasFlash('order')) {
  24. //throw new CHttpException(403);
  25. //}
  26. $this->pageTitle = 'Заказ №'.$id.' '.Yii::app()->name;
  27. $this->description = 'Заказ №'.$id.' '.Yii::app()->name;
  28. $this->keywords = 'Заказ №'.$id.' '.Yii::app()->name;
  29. $order = Yii::app()->identityMap->loadModel('Order', $id);
  30. $this->render('view', array(
  31. 'order' => $order,
  32. ));
  33. }
  34. // Yandex.Деньги
  35. protected function proccessYandex($order)
  36. {
  37. $this->render('/proccess/yandex', array(
  38. 'order' => $order,
  39. ));
  40. }
  41. // Через банковский перевод
  42. protected function proccessBank($order)
  43. {
  44. $this->render('proccess/bank', array(
  45. 'order' => $order,
  46. ));
  47. }
  48. public function actionViewBankBill($id)
  49. {
  50. $order = Yii::app()->identityMap->loadModel('Order', $id);
  51. $this->renderPartial('_order', array(
  52. 'order' => $order
  53. ));
  54. }
  55. // АльфаБанк
  56. protected function proccessAlfabank($order)
  57. {
  58. $this->render('proccess/alfabank', array(
  59. 'order' => $order,
  60. ));
  61. }
  62. // WebMoney
  63. protected function proccessWebmoney($order)
  64. {
  65. $action = 'https://merchant.webmoney.ru/lmi/payment.asp';
  66. $options = array(
  67. // Стоимость заказа
  68. 'LMI_PAYMENT_AMOUNT' => number_format($order->getCost(), 2, '.', ''),
  69. // Текстовое описание заказа
  70. 'LMI_PAYMENT_DESC_BASE64' => base64_encode(Yii::app()->name . ' - Заказ №' . $order->id),
  71. // Номер заказа
  72. 'LMI_PAYMENT_NO' => $order->id,
  73. // Номер кошелька продавца
  74. 'LMI_PAYEE_PURSE' => Yii::app()->config->get('WebmoneyConfig_LMI_PAYEE_PURSE'),
  75. // URL страницы, на которую покупатель попадает, после оплаты в системе WebMoney в случае успешной операции
  76. 'LMI_SUCCESS_URL' => $this->createAbsoluteUrl('/shop/webmoney/success', array('id' => $order->id)),
  77. // Метод вызова LMI_SUCCESS_URL (Варианты: 0 - GET, 1 - POST, 2 - LINK)
  78. 'LMI_SUCCESS_METHOD' => 'post',
  79. // URL страницы, на которую покупатель попадает в случае ошибки оплаты в системе WebMoney или если покупатель просто отказался от оплаты
  80. 'LMI_FAIL_URL' => $this->createAbsoluteUrl('/shop/webmoney/fail'),
  81. // Метод вызова LMI_FAIL_URL (Варианты: 0 - GET, 1 - POST, 2 - LINK)
  82. 'LMI_FAIL_METHOD' => 'post',
  83. // Урл, по которому сервис WebMoney изместит сайт об удачной покупке
  84. 'LMI_RESULT_URL' => $this->createAbsoluteUrl('/shop/webmoney/result'),
  85. );
  86. Yii::app()->user->setState('to_success_order_id', $order->id);
  87. $this->render('proccess/webmoney', array(
  88. 'action' => $action,
  89. 'options' => $options,
  90. ));
  91. }
  92. }