_id}' WHERE `buy_id` = '{$buy_id['buy_id']}' "; db_get($upd_shop, 'chitatel'); # фиксируем shop_id от Юкассы header("Location: $pay_url"); // перенаправляем на оплату } } # получение результатов оплаты заказа function resultpay_kuri(){ $source = file_get_contents('php://input'); //$source = file_get_contents('/thosts/anpdf/app/tests/result.json'); $fjson = '/thosts/anpdf/app/tests/result.json'; file_put_contents($fjson, $source); // logsave('yk', $source); $result = json_decode($source, true); if (isset($result['event'])) { $shop_id = $result['object']['id']; $find_sql = "SELECT `buy_id`, `delivery_id`, `number_id` FROM `anbuy` WHERE `shop_id` = '$shop_id' LIMIT 1"; $find_order = db_get($find_sql); if (!isset($find_order['buy_id'])) { return False; } if ($result['event'] == "payment.succeeded"){ $currdate = date('Y-m-d H:i:s'); $supd = " UPDATE `anbuy` SET `buy_status` = '1', `buy_active` = '1', `date` = '$currdate' WHERE `buy_id` = '{$find_order['buy_id']}'"; $result = db_get($supd, 'chitatel'); // фисксируем что оплату получил } # SELECT * FROM `price` WHERE `priceslug` = 'saturn-pod-priczelom-smersha'; elseif ( $result['event'] == "payment.canceled"){ if ($find_order['delivery_id'] > 1 ){ #физический товар возвращаем на место $find_order = db_get("SELECT `pieces` FROM `price` WHERE `price_id` = '{$find_order['number_id']}'"); if (isset($find_order['pieces'])){ $newpieces = $find_order['pieces'] + 1; $return_tovar = db_get("UPDATE `price` SET `pieces` = '$newpieces' WHERE `price_id` = '{$find_order['number_id']}'"); } } } } else { echo "order not fount"; exit; } return True; } function yk_pay($buy, $return_url = ''){ if ($return_url == '') $return_url = SITE; $client = new Client(); $client->setAuth(YID, YKEY); $items = array( 'amount' => array( 'value' => $buy['currprice'], 'currency' => 'RUB', ), 'confirmation' => array( 'type' => 'redirect', 'return_url' => $return_url, ), "receipt" => array( "customer" => array( "email" => $buy['buy_email'], ), "items" => array( array( "description" => $buy['pricename'], "quantity" => "1.00", "amount" => array( "value" => $buy['currprice'], "currency" => "RUB" ), "payment_mode" => "full_prepayment", "payment_subject" => "commodity" ) ) ), 'capture' => true, 'description' => $buy['pricename'], ); $id = uniqid('', true); $payment = $client->createPayment( $items, $id ); return $payment; } # уведомление доставлено function push_ok($buy_id){ return db_get( "UPDATE `anbuy` SET `mail_status` = '1' WHERE `buy_id` = $buy_id", 'chitatel'); } #оповещаем письмом об успешном заказе function sendstatus_kuri(){ /** * обнуление доставки заказов * UPDATE `anbuy` SET `mail_status` = '1' WHERE `buy_status` = 1 AND `mail_status` = '0'; **/ # ищем не пушнутые с Яндекс Кассы на почту заказку $orders = db_get("SELECT * FROM `anbuy` WHERE `buy_status` = 1 AND `mail_status` = '0'"); foreach($orders as $order){ if (isset($order['buy_email'])){ # есть почта куда пушить if ($order['delivery_id'] == 1) { #электронный платеж отправляем личный кабинет $find_client = api_add_client($order['buy_email']); // создаем клиента if (isset($find_client['client_id'])){ $upd = "UPDATE `anbuy` SET `client_id` = '{$find_client['client_id']}' WHERE `buy_id` = '{$order['buy_id']}'"; db_get($upd, 'chitatel'); } $message = "Ваш заказ выполнен.

Он будет всегда доступен в Вашем личном кабинете.

Чтобы войти в КЛАН перейдите по ссылке - https://klan.argumenti.ru/login. Введите свой логин и пароль. Если Вы еще не пользовались кабинетом создайте пароль, использую эту электронную почту. Если пароль забыли, воспользуйтесь опцией Забыли пароль, используя эту электронную почту."; $subject = "Аргументы Недели: заказ выполнен"; $result = klanmail($order['buy_email'], $subject, $message, set('klanmail')); } else { $message = "Ваш платеж подтвержден. Номер заказа {$order['buy_id']}. \n Сообщите его менеджеру при необходимости"; $subject = "Аргументы Недели: платеж подтвержден"; $result = klanmail($order['buy_email'], $subject, $message, set('klanmail')); } # меняем на статус доставлено if ($result == True){ push_ok($order['buy_id']); } } } return; }