{ /** * ВНИМАНИЕ * Для работы с API на сервере должны быть установлены расширения Curl и JSON */ $connect = array( 'ip' => '88.147.147.225', //IP адрес Вашего сервера Такси-Мастер 'port' => '8989', //Порт, который указан в настройках ТМ API 'secret' => '79279143837', //Cекретный ключ, который указан в настройках ТМ API 'method' => 'create_order' ); function serviceIsAvailable( $connect ) { $requestArgs = getArgs(); $ch = curl_init( "https://".$connect['ip'].":".$connect['port']."/common_api/1.0/get_tariffs_list?" . $requestArgs ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $ch, CURLOPT_TIMEOUT, 3 ); curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Signature: ' . md5( $requestArgs . $connect['secret'] ), 'Content-Type: application/x-www-form-urlencode' )); $response = json_decode(curl_exec( $ch )); $error_code = curl_errno($ch); curl_close($ch); return ( $response->code == 0 ) && ( !empty($response->data->tariffs) ) && ( $error_code == 0); } function getArgs( $extra = array() ) { return http_build_query(array_merge( array( 'pay_system_type' => '0', 'account' => '123400542',//'004700-000003', 'oper_id' => '20120813182430',//'20120813182430', 'sum' => '1', 'oper_time' => '20120813182430', 'test' => '1' ) , $extra) ); } function addOperation( $connect, $phone, $address, $customer, $comment ) { $requestArgs = getArgs(array( 'phone' => $phone, 'source' => $address, 'source_time' => date('YmdHis'), 'customer' => $customer, 'comment' => $comment )); $ch = curl_init( "https://".$connect['ip'].":".$connect['port']."/common_api/1.0/".$connect['method'] ); curl_setopt( $ch, CURLOPT_POST, TRUE ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $requestArgs ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, TRUE ); curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false ); curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false ); curl_setopt( $ch, CURLOPT_TIMEOUT, 3 ); curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Signature: ' . md5( $requestArgs . $connect['secret'] ), 'Content-Type: application/x-www-form-urlencode' )); $response = json_decode(curl_exec( $ch )); $error_code = curl_errno($ch); curl_close($ch); if( $response->code == 0 && !empty($response->data->order_id) && ( $error_code == 0) ) { return true; } else { return $response->descr; } } $result = array(); $errorMessage = array(); if( !function_exists('curl_init') ) { $errorMessage[] = 'не установлен curl'; } if ( !function_exists('json_encode') ) { $errorMessage[] = 'не установлен json'; } if( empty( $_POST['Number'] ) || empty( $_POST['OrderSourceAddress'] ) ) { $errorMessage[] = 'не указан обязательный параметр.'; } if( serviceIsAvailable( $connect ) ) { $subResult = addOperation( $connect, $_POST['Number'], $_POST['OrderSourceAddress'], $_POST['OrderClientName'], $_POST['OrderComment'] ); if( $subResult === true ) { $result = 'Заказ успешно принят.'; } else { $errorMessage[] = $subResult; } } else { $errorMessage[] = 'Сервис недоступен. Проверьте настройки подключения.'; } } Такси
{ if( !empty($_POST) ) { }{ if( empty($errorMessage) ) { }

{ echo $result; }

{ } else { }

{ echo implode(' ', $errorMessage); }

{ } }{ } else { } { } }

Создание заказа

*Номер телефона:
Пример: 555111 или 89331515153
Ваше имя и отчество:
Пример: Василий Анатольевич
*Адрес подачи:
Пример: Пушкинская 155
Примечание:
Заполнять не обязательно
* - Поля, обязательные к заполнению.