├── .gitignore ├── CHANGELOG.md ├── README.md ├── composer.json ├── config └── robokassa.php └── src ├── Facade.php ├── Robokassa.php └── RobokassaServiceProvider.php /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | /vendor 3 | .phpunit.result.cache 4 | .idea 5 | Homestead.json 6 | Homestead.yaml 7 | npm-debug.log 8 | yarn-error.log 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## Release Notes 2 | 3 | ## [0.1.3] - 2024-03-07 4 | 5 | ### Changed 6 | - Обновлен Readme 7 | - Обновлены зависимости пакета 8 | 9 | 10 | ## [0.1.2] - 2023-02-23 11 | 12 | ### Changed 13 | - Изменена версия GuzzleHttp 14 | 15 | ## [0.1.1] - 2023-02-23 16 | 17 | ### Changed 18 | - Изменена версия PHP 19 | 20 | ## [0.1] - 2021-08-21 21 | 22 | ### Added 23 | - Релиз 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Робокасса 3 | 4 | Пакет позволяет производить оплату через сервис [Робокасса](https://docs.robokassa.ru/) в фреймворке Laravel. 5 | 6 | 7 | ## Установка 8 | 9 | ```` 10 | $ composer require unetway/laravel-robokassa 11 | ```` 12 | 13 | 14 | ## Конфигурация 15 | 16 | Установите параметры для подключения к Робокасса в файле ```config/robokassa.php``` 17 | 18 | **Параметры:** 19 | - login - логин 20 | - password1 - пароль 1 21 | - password1 - пароль 2 22 | - test_password1 - тествый пароль 1 23 | - test_password2 - тествый пароль 2 24 | - is_test - true|false 25 | - hashType - md5|ripemd160|sha1|sha256|sha384|sha512 26 | 27 | 28 | ## Использование 29 | 30 | 31 | ```` 32 | generateLink([ 47 | 'OutSum' => 123.45, 48 | 'Description' => 'Описание', 49 | 'InvoiceID' => 7, 50 | ]); 51 | 52 | echo $link; 53 | ```` 54 | 55 | ```` 56 | 57 | $link = $robokassa->generateLink([ 58 | 'OutSum' => 123.45, 59 | 'Description' => 'Описание', 60 | 'IncCurrLabel' => '', 61 | 'InvoiceID' => 7, 62 | 'Culture' => 'ru', 63 | 'Encoding' => 'UTF-8', 64 | 'Email' => '', 65 | 'ExpirationDate' => 'YYYY-MM-DDThh:mm:ss.fffffffZZZZZ', 66 | 'OutSumCurrency' => 'USD', 67 | 'UserIp' => '', 68 | ]); 69 | 70 | echo $link; 71 | ```` 72 | В пакете возможно использовать [обязательные](https://docs.robokassa.ru/#1186) и [необязательные](https://docs.robokassa.ru/#1192) параметры. 73 | 74 | Параметры MerchantLogin и SignatureValue указывать не нужно. 75 | 76 | ### Отправка SMS 77 | 78 | ```` 79 | $phone = 'номер телефона'; 80 | $message = 'Сообщение не больше 128 символов'; 81 | 82 | return $robokassa->sendSms($phone, $message); 83 | 84 | ```` 85 | 86 | ### Периодические платежи (рекуррентные) 87 | 88 | Список используемых параметров представлен в официальной документации [переодических платежей](https://docs.robokassa.ru/#1216). 89 | 90 | ```` 91 | $outSum = 7.5; 92 | $invoiceID = 8; 93 | $previousInvoiceID = 5; 94 | $paramsOther = []; //другие дополнительные параметры 95 | 96 | return $robokassa->recurrent($outSum, $invoiceID, $previousInvoiceID, $paramsOther); 97 | 98 | ```` 99 | 100 | 101 | ### Список валют 102 | 103 | Используется для указания значений параметра IncCurrLabel также используется для отображения доступных вариантов оплаты непосредственно на Вашем сайте если Вы желаете дать больше информации своим клиентам. 104 | 105 | ```` 106 | $lang = 'ru'; 107 | return $robokassa->getCurrencies($lang); 108 | ```` 109 | 110 | ### Список способов оплаты 111 | 112 | Возвращает список способов оплаты, доступных для оплаты заказов указанного магазина/сайта. 113 | 114 | ```` 115 | $lang = 'ru'; 116 | return $robokassa->getPaymentMethods($lang); 117 | ```` 118 | 119 | 120 | ### Расчёта суммы к оплате с учётом комиссии сервиса 121 | 122 | Позволяет рассчитать сумму, которую должен будет заплатить покупатель, с учётом комиссий ROBOKASSA (согласно тарифам) и тех систем, через которые покупатель решил совершать оплату заказа. 123 | 124 | ```` 125 | $outSum = 7.5; 126 | $lang = 'ru'; 127 | $incCurrLabel = null; 128 | return $robokassa->getRates($outSum, $language, $incCurrLabel); 129 | ```` 130 | 131 | 132 | ### Расчёт суммы к получению магазином 133 | 134 | Интерфейс расчёта суммы к получению магазином 135 | Позволяет рассчитать сумму к получению, исходя из текущих курсов ROBOKASSA, по сумме, которую заплатит пользователь. 136 | Только для физических лиц. 137 | 138 | ```` 139 | return $robokassa->calcOutSumm($incSum, $incCurrLabel); 140 | ```` 141 | 142 | ### Статус оплаты 143 | 144 | Получение состояния оплаты счета 145 | Возвращает детальную информацию о текущем состоянии и реквизитах оплаты. 146 | Необходимо помнить, что операция инициируется не в момент ухода пользователя на оплату, а позже – после подтверждения его платежных реквизитов, т.е. Вы вполне можете не находить операцию, которая по Вашему мнению уже должна начаться. 147 | 148 | ```` 149 | return $robokassa->opState($invoiceID); 150 | ```` 151 | 152 | ### Проверка платежа на ResultURL 153 | 154 | ```` 155 | $params['OutSum'] = $_POST['OutSum']; 156 | $params['InvId'] = $_POST['InvId']; 157 | 158 | if ($robokassa->checkResult($params)) { 159 | echo 'Успешно!'; 160 | }; 161 | ```` 162 | 163 | ### Проверка платежа на SuccessURL 164 | 165 | ```` 166 | $params['OutSum'] = $_POST['OutSum']; 167 | $params['InvId'] = $_POST['InvId']; 168 | 169 | if ($robokassa->checkSuccess($params)) { 170 | echo 'Успешно!'; 171 | }; 172 | ```` 173 | 174 | 175 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "unetway/laravel-robokassa", 3 | "description": "Пакет для работы с Робокассой в Laravel", 4 | "keywords": [ 5 | "robokassa", 6 | "recurrent", 7 | "payment", 8 | "laravel" 9 | ], 10 | "homepage": "https://github.com/unetway/laravel-robokassa", 11 | "license": "MIT", 12 | "authors": [ 13 | { 14 | "name": "Cherepanov Ilya", 15 | "email": "support@unetway.com" 16 | } 17 | ], 18 | "require": { 19 | "php": ">=7.4", 20 | "guzzlehttp/guzzle": ">=6.3", 21 | "ext-json": "*", 22 | "ext-simplexml": "*", 23 | "unetway/robokassa": "*" 24 | }, 25 | "autoload": { 26 | "psr-4": { 27 | "Unetway\\LaravelRobokassa\\": "src/" 28 | } 29 | } 30 | } 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /config/robokassa.php: -------------------------------------------------------------------------------- 1 | env('ROBOKASSA_LOGIN'), 5 | 6 | 'password1' => env('ROBOKASSA_PASSWORD1'), 7 | 8 | 'password2' => env('ROBOKASSA_PASSWORD2'), 9 | 10 | 'is_test' => env('ROBOKASSA_IS_TEST', false), 11 | 12 | 'test_password1' => env('ROBOKASSA_TEST_PASSWORD1'), 13 | 14 | 'test_password2' => env('ROBOKASSA_TEST_PASSWORD2'), 15 | 16 | 'hashType' => env('ROBOKASSA_HASH_TYPE', 'md5'), 17 | ]; -------------------------------------------------------------------------------- /src/Facade.php: -------------------------------------------------------------------------------- 1 | publishes([ 18 | __DIR__ . '/../config/config.php' => config_path('robokassa.php'), 19 | ], 'config'); 20 | } 21 | 22 | /** 23 | * Register the service provider. 24 | * 25 | * @return void 26 | */ 27 | public function register() 28 | { 29 | $this->app->bind('robokassa', function (Application $app) { 30 | return new Robokassa(config('robokassa')); 31 | }); 32 | } 33 | 34 | public function provides() 35 | { 36 | return ['robokassa']; 37 | } 38 | } --------------------------------------------------------------------------------