Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 15.05.2019 21:26:26

Подключение платежных систем

Доброго всем времени суток. Научите новичка правильно прикручивать платежные системы на сайт. Интересуют платежные системы пространства СНГ типа Yandex.Money, QIWI,LiqPAY. Буду очень благодарен за любой пинок в нужную сторону.

Не в сети

#2 16.05.2019 10:02:15

Re: Подключение платежных систем

Начните с документации. У всех выше названых провайдеров информации достаточно. Самая простая схема, это заполнение формы на вашем сайте и отправка в шлюз платежной системы, оттуда редирект на платежную форму и после оплаты возврат на указанную страницу вашего сайта. Опционально есть опция пуша, для информирования о состоянии платежа.

Не в сети

#3 16.05.2019 10:24:07

Re: Подключение платежных систем

Процесс я понимаю, документацию изучил, пока не совсем понимаю его реализацию во фреймворке, было бы неплохо если бы помогли с примером.

Не в сети

#4 20.05.2019 11:34:09

Re: Подключение платежных систем

Процесс я понимаю, документацию изучил, пока не совсем понимаю его реализацию во фреймворке, было бы неплохо если бы помогли с примером.

У вас есть код формы . Создаете контроллер и кладете этот код в вью котроллера например. Покажите что вы делали, как минимум, и что не получилось.

Не в сети

#5 20.05.2019 16:11:59

Re: Подключение платежных систем

Уже разобрался, форму создал платеж проходит, теперь думаю, как сделать чтобы при удачной оплате в БД заносился срок подписки.

Не в сети

#6 20.05.2019 17:16:44

Re: Подключение платежных систем

Смотрите в сторону push-настроек на стороне платежных систем. С вашей стороны нужно подготовить урл куда будет стучаться платежка. Под каждую систему свой урл. И сразу подготовьте консольную команду для ручной проверки платежа по его идентификатору. Из опыта скажу, будете пользоваться чуть чаще чем всегда). Урлы должны быть закрыты за https.

Изменено lodar (20.05.2019 17:17:50)

Не в сети

#7 20.05.2019 19:47:41

Re: Подключение платежных систем

Смотрите в сторону push-настроек на стороне платежных систем. С вашей стороны нужно подготовить урл куда будет стучаться платежка. Под каждую систему свой урл. И сразу подготовьте консольную команду для ручной проверки платежа по его идентификатору. Из опыта скажу, будете пользоваться чуть чаще чем всегда). Урлы должны быть закрыты за https.

Правильно ли направление мыслей:
1 Создал контроллер
2. В роутах прписал Route::post('payment','PaymentController@payment');
3. В кононтролере содал такой метод

public function payment(Request $request)
   {
    parse_str($request->getContent(), $arr);   
    $hash = sha1($arr['notification_type'].'&'. $arr['operation_id'] .'&'. $arr['amount'] .'&'. $arr['currency'] .'&'. 
    $arr['datetime'] .'&'. $arr['sender'] .'&'. $arr['codepro'] .'&'. 'UmUGoYENzynxxALGuehgN0EX' .'&'. $arr['label']); 
    
    if($arr['sha1_hash'] != $hash or $arr['codepro'] === true or $arr['unaccepted'] ===true)
    {
        flash()->overlay('Payment error', 'Payment');
        return redirect('user');
    }
    $email = $arr['email'];
    file_put_contents('files/history.php', $arr['datetime'] . 'Платеж получен' . $arr['amount'] . $arr['email'] . PHP_EOL, FILE_APPEND);
    flash()->overlay('Payment OK ' . $email, 'Payment');
    return redirect('user');
   }

4. НА странице настроек ЯД указал урл http://site.io/payment

Изменено Alexzt (20.05.2019 19:48:28)

Не в сети

#8 21.05.2019 16:25:34

Re: Подключение платежных систем

public function payment(Request $request)

Вы для чего используете этот метод? Если для пуша, то я не совсем понимаю что вы делаете в вашем коде.

Изменено lodar (21.05.2019 16:26:12)

Не в сети

#9 21.05.2019 19:27:33

Re: Подключение платежных систем

Вы для чего используете этот метод? Если для пуша, то я не совсем понимаю что вы делаете в вашем коде.

Да, тут подразумевалось разобрать ответ после успешной оплаты. Пока хотел записать данные в файл, но будет запись в БД.

Не в сети

#10 21.05.2019 19:42:01

Re: Подключение платежных систем

Пока хотел записать данные в файл, но будет запись в БД.

Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);

А чем не устроило запись в лог?

Не в сети

#11 30.05.2019 16:28:26

Re: Подключение платежных систем

А чем не устроило запись в лог?

Чего то не получается увидеть ответ от сервера, где не правильно делаю?
Правильно ли направление мыслей:
1 Создал контроллер
2. В роутах прописал Route::post('payment','PaymentController@payment');
3. В контроллере создал такой метод - для получения ответа от ЯМ

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class PaymentController extends Controller
{
   public function payment(Request $request)
   {
    parse_str($request->getContent(), $arr);   
    $hash = sha1($arr['notification_type'].'&'. $arr['operation_id'] .'&'. $arr['amount'] .'&'. $arr['currency'] .'&'. 
    $arr['datetime'] .'&'. $arr['sender'] .'&'. $arr['codepro'] .'&'. 'UmUGoYENzynxxALGuehgN0EX' .'&'. $arr['label']); 
    
    if($arr['sha1_hash'] != $hash or $arr['codepro'] === true or $arr['unaccepted'] ===true)
    {
        flash()->overlay('Payment error', 'Payment');
        return redirect('user');
    }
    $email = $arr['email'];
    $message = $arr['datetime'] . 'Платеж получен' . $arr['amount'] . $arr['email'];
    Log::info($message);
    return redirect('user');
   }
}
	

В настройках ЯМ все прописал, тестовое сообщение уходит на нужный адрес.

Не в сети

#12 03.06.2019 10:10:04

Re: Подключение платежных систем

В настройках ЯМ все прописал, тестовое сообщение уходит на нужный адрес.

Дайте ссылку на документацию, где описывается механизма и структура пуша.

Не в сети

Подвал раздела