Module.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. namespace reactlogic\liqpay;
  3. use reactlogic\liqpay\models\PaymentForm;
  4. use yii\base\Module as BaseModule;
  5. class Module extends BaseModule
  6. {
  7. /**
  8. * Версия API. Текущее значение - 3
  9. *
  10. * @var Number $_version *Required
  11. */
  12. public $_version = 3;
  13. /**
  14. * Публичный ключ - идентификатор магазина. Получить ключ можно в настройках магазина
  15. *
  16. * @var String $public_key *Required
  17. */
  18. public $public_key;
  19. /**
  20. * Публичный ключ - идентификатор магазина. Получить ключ можно в настройках магазина
  21. *
  22. * @var String $private_key
  23. */
  24. public $private_key;
  25. /**
  26. * Тип операции.
  27. *
  28. * @var String $action *Required
  29. *
  30. * Возможные значения:
  31. * - `pay` - платеж,
  32. * - `hold` - блокировка средств на счету отправителя
  33. * - `subscribe` - регулярный платеж
  34. * - `paydonate` - пожертвование
  35. * - `auth` - предавторизация карты
  36. */
  37. public $action;
  38. /**
  39. * Сумма платежа.Например: 5, 7.34
  40. *
  41. * @var Number $amount *Required
  42. */
  43. public $amount;
  44. /**
  45. * Валюта платежа. Возможные значения: USD, EUR, RUB, UAH
  46. *
  47. * @var String $currency *Required
  48. */
  49. public $currency;
  50. /**
  51. * Назначение платежа.
  52. *
  53. * @var String $description *Required
  54. */
  55. public $description;
  56. /**
  57. * Уникальный ID покупки в Вашем магазине. Максимальная длина 255 символов.
  58. *
  59. * @var String $order_id *Required
  60. */
  61. public $order_id;
  62. /**
  63. * Валюта платежа. Возможные значения: ru, uk, en
  64. *
  65. * @var String $language *Optional
  66. */
  67. public $language = 'uk';
  68. public function init()
  69. {
  70. parent::init(); // TODO: Change the autogenerated stub
  71. if (empty($this->order_id)) {
  72. $this->order_id = '' . time();
  73. }
  74. }
  75. public function getUrlRules()
  76. {
  77. return array(
  78. 'poss' => 'liqpay/liqpay/index'
  79. );
  80. }
  81. public function buildForm(array $data)
  82. {
  83. $model = new PaymentForm();
  84. $model->load($data, '');
  85. $model->version = $this->_version;
  86. $model->public_key = $this->public_key;
  87. $model->action = $this->action;
  88. $model->amount = $this->amount;
  89. $model->currency = $this->currency;
  90. $model->description = $this->description;
  91. $model->order_id = $this->order_id;
  92. $model->language = $this->language;
  93. /*$model->server_url = $this->server_url;
  94. $model->result_url = $this->result_url;*/
  95. return $model;
  96. }
  97. /**
  98. * @param $params
  99. * @return string
  100. */
  101. public function getData($params)
  102. {
  103. return base64_encode(json_encode($params));
  104. }
  105. /**
  106. * @param $params
  107. * @return string
  108. */
  109. public function getSignature($params)
  110. {
  111. $data = $this->getData($params);
  112. return base64_encode(sha1($this->private_key . $data . $this->private_key, 1));
  113. }
  114. }