Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Подключение API, генерация формы и передача данных в функцию
Форумы портала PHP.SU » PHP » Программирование на PHP » Подключение API, генерация формы и передача данных в функцию

Страниц (1): [1]
 

1. rasl89 - 26 Мая, 2020 - 22:14:06 - перейти к сообщению
Всем привет.
Подключаю API платежной системы к сайту. Движок WP.
Подключена классная тема, есть внутренний кошелек, ЛК.
Подключил платежку, отправляю данные с сайта в платежку, все прекрасно платеж проходит.
Теперь нужно научить принимать от платежки success и внедрить это в скрипт для дальнейшей обработки заказа.
Чтобы не переписывать большую часть скрипта решил параллельно с внутренним кошельком добавить оплату с внешнего.
Итак, мы имеем:
Обработчик платежа для платежки, который передает в платежку success или error,
в мерчанте платежки есть обязательная настройка:

1. Урл успешной оплаты

2. Урл ошибки

3. Обработчик

Когда обработчик получает SUCCESS система показывает нам страницу успешной оплаты.

Теперь вопрос, как сделать так чтобы SUCCESS пришел в систему и продолжилось оформление заказа? В движке идет плотная работа с сессиями, как сделать все правильно чтобы их не растерять?

Проблема в том что сессии теряются когда в дело вступает страница успешной оплаты из мерчанта.
Необходимо получить success далее передать это в обработчик на сайте.
Вложил обработчик платежа (p_result), обработчик заказа на сайте (page-process-payment) и саму функцию обработки платежа (MJE_Checkout).

Идея такова:

когда платежка получила оплату, сгенерировать переход на страницу по типу page-process-payment.php

скормить ему проверку оплаты по этому коду

PHP:
скопировать код в буфер обмена
  1.     if($order_id && !get_post_meta($order_id, 'et_order_is_process_payment')) {
  2.  
  3.         if( isset($session['process_type']) && $session['process_type'] == 'buy' ){
  4.  
  5.             $payment_return = MJE_Checkout::process_payment( $payment_type, $session );
  6.  
  7.         } else {
  8.  
  9.             $payment_return = ae_process_payment($payment_type, $session);
  10.  
  11.         }
  12.  
  13.         update_post_meta($order_id, 'et_order_is_process_payment', true);
  14.  
  15.         et_destroy_session();
  16.  
  17.     }


Как это все провернуть? Возможно ли это?

 

Powered by ExBB FM 1.0 RC1