$server->handle(); } else { die('Access denied'); } } else { include Registry::get('config.dir.payments') . 'qiwi_files/IShopServerWSService.php'; define('TRACE', 0); $_location = !empty($processor_data['processor_params']['location']) ? $processor_data['processor_params']['location'] : 'http://ishop.qiwi.ru/services/ishop'; $dame_format = $_location == "http://ishop.qiwi.ru/services/ishop" ? 'd.m.Y H:i:s' : 'Y.m.d H:i:s'; $service = new IShopServerWSService(Registry::get('config.dir.payments') . 'qiwi_files/IShopServerWS.wsdl', array('location' => $_location, 'trace' => TRACE)); include Registry::get('config.dir.payments') . 'qiwi_files/qiwi_func.php'; $_order_id = $order_info['repaid'] ? $order_info['order_id'] . '_' . $order_info['repaid'] : $order_info['order_id']; $_order_total = fn_format_rate_value($order_info['total'], 'F', 2, '.', '', ''); $_lifetime = date($dame_format, time() + $processor_data['processor_params']['lifetime'] * 60); $data = array('login' => $processor_data['processor_params']['login'], 'password' => $processor_data['processor_params']['passwd'], 'phone' => fn_qiwi_convert_phone($order_info['payment_info']['phone']), 'amount' => $_order_total, 'txn_id' => $_order_id, 'comment' => !empty($order_info['notice']) ? $order_info['notice'] : '', 'lifetime' => $_lifetime, 'alarm' => $processor_data['processor_params']['alarm'], 'create' => 1); $result = createBill($data, $service); $status = 'qiwi_result_status_' . $result; if ($result == 0) { $pp_response['order_status'] = 'O'; } else { $pp_response['order_status'] = 'F'; } $pp_response['reason_text'] = __($status); fn_finish_payment($order_id, $pp_response); $idata = array('order_id' => $_order_id, 'type' => 'S', 'data' => TIME); db_query("REPLACE INTO ?:order_data ?e", $idata); fn_order_placement_routines('route', $order_id, false); } function fn_qiwi_convert_phone($phone) { $phone = str_replace(array('+', ' ', '(', ')', '-'), '', $phone);
<?php require 'dbadapter.php'; include_once 'header.php'; if (createBill("bill", 300, 15, 1)) { echo "<p>Bill created</p>"; } if (createDate("trash", 21, 1)) { echo "<p>Date created</p>"; } if (createPurchase("Dish Soap", 21, "2014-10-06", 1, 1)) { echo "<p>Purchase created</p>"; } if (createRoom(50, 1, 1)) { echo "<p>Room created</p>"; } include_once 'footer.php';
$params = new createBill(); $params->login = LOGIN; // логин $params->password = PASSWORD; // пароль $params->user = $phone; // пользователь, которому выставляется счет $params->amount = '' . $amount; // сумма $params->comment = $comment; // комментарий $params->txn = $txn_id; // номер заказа $params->lifetime = $lifetime; // время жизни (если пусто, используется по умолчанию 30 дней) // уведомлять пользователя о выставленном счете (0 - нет, 1 - послать СМС, 2 - сделать звонок) // уведомления платные для магазина, доступны только магазинам, зарегистрированным по схеме "Именной кошелёк" $params->alarm = $alarm; // выставлять счет незарегистрированному пользователю // false - возвращать ошибку в случае, если пользователь не зарегистрирован // true - выставлять счет всегда $params->create = $create; $res = $service->createBill($params); $rc = $res->createBillResult; return $rc; } // пример работы $rc = createBill('8888888888', '0.01', 'TEST-1', 'Test bill'); // проверить код $rc, выдать ошибку/рекомендацию пользователю в зависимости от кода // вывод для отладки: print $rc;