function pay_uniteller_form($order, $param = array()) { $config = $this->config->uniteller ? $this->config->uniteller : new data(); if ($param) { $config->set($param); } $card = $this->view->basket()->pay_card($order); if (@(!$card)) { return false; } function getSignature($Shop_IDP, $Order_ID, $Subtotal_P, $MeanType, $EMoneyType, $Lifetime, $Customer_IDP, $Card_IDP, $IData, $PT_Code, $password) { $Signature = strtoupper(md5(md5($Shop_IDP) . "&" . md5($Order_ID) . "&" . md5($Subtotal_P) . "&" . md5($MeanType) . "&" . md5($EMoneyType) . "&" . md5($Lifetime) . "&" . md5($Customer_IDP) . "&" . md5($Card_IDP) . "&" . md5($IData) . "&" . md5($PT_Code) . "&" . md5($password))); return $Signature; } $config->shopid = trim($config->shopid); $data = array('Shop_IDP' => $config->shopid, 'Order_IDP' => $order, 'Subtotal_P' => $card->total, 'Lifetime' => 3600, 'Customer_IDP' => $card->author, 'Signature' => getSignature($config->shopid, $order, $card->total, @$param['MeanType'] ? $param['MeanType'] : '', @$param['EMoneyType'] ? $param['EMoneyType'] : '', 3600, $card->author, '', '', '', $config->password), 'URL_RETURN_OK' => 'http://' . $_SERVER['HTTP_HOST'] . '/pay/unicardok', 'URL_RETURN_NO' => 'http://' . $_SERVER['HTTP_HOST'] . '/pay/unicardfail'); if (@$param['MeanType']) { $data['MeanType'] = $param['MeanType']; } if (@$param['EMoneyType']) { $data['EMoneyType'] = $param['EMoneyType']; } if ($card->mail) { $data['Email'] = $card->mail; } if ($card->phone) { $data['Phone'] = $card->phone; } echo $this->gen_form($config->test ? 'https://test.wpay.uniteller.ru/pay/' : 'https://wpay.uniteller.ru/pay/', $data); exit; }
function editMediaMetaData($IW, $IC) { $book = $this->sql->getMediaMetaData($IW['document_id']); $tpl_vars['book'] = $book; $tpl_vars['work'] = $IW; $tpl_vars['coll'] = $IC; $tpl_vars['colData'] = $this->sql->getCollectionInfos($IW['collection_id']); $tpl_vars['work']['notes_to_studies'] = ""; $tpl_vars['work']['notes_to_staff'] = ""; $tpl_vars['user'] = $_SESSION['user']; if ($book['state_id'] == 9) { $tpl_vars['work']['todo'] = "suggest"; } # 9 = Suggest Mode / Kaufvorschlag if (isset($book['notes_to_studies'])) { $tpl_vars['work']['notes_to_studies'] = $book['notes_to_studies']; } if (isset($book['notes_to_staff'])) { $tpl_vars['work']['notes_to_staff'] = $book['notes_to_staff']; } if (!isset($book['signature'])) { $tpl_vars['work']['signature'] = getSignature($book['ppn']); } #$this->CFG->deb($tpl_vars,1); $this->renderer->do_template('edit_book.tpl', $tpl_vars); exit(0); }
function test() { $app_id = "5vY4mg0Eog8SWo0mHYSWbqpl"; $token = "Ppuj8xfvb8jltBkcDvALFcEtWvgXGdxj"; $params = array("app_id" => $app_id, "timestamp" => "1442198292", "noncestr" => "TWSm66JpFIlzdRyk"); $url = "a=2&b=3"; parse_str($url, $urlParams); $all = array_merge($params, $urlParams); $sign = getSignature($all, $token); echo "signature : " . $sign . "\n"; }
function main($access_key, $secret_key, $canonical_uri) { //パラメータ $service = 's3'; $region = 'ap-northeast-1'; // $canonical_uri = 'URL指定' ; // $access_key = 'アクセスキー'; // $secret_key = '秘密鍵'; $method = 'GET'; $host = "{$service}-{$region}.amazonaws.com"; $canonical_querystring = ''; $signed_headers = 'host;x-amz-content-sha256;x-amz-date'; $endpoint = "http://{$host}{$canonical_uri}"; $payload = ''; $algorithm = 'AWS4-HMAC-SHA256'; //現在時刻の取得 $t = time(); $amzdate = gmdate('Ymd\\THis\\Z', $t); $datestamp = gmdate('Ymd', $t); //payload作成 $payload_hash = hash('sha256', $payload); //ヘッダ作成 $canonical_headers = "host:{$host}\n"; $canonical_headers .= "x-amz-content-sha256:{$payload_hash}\n"; $canonical_headers .= "x-amz-date:{$amzdate}\n"; //リクエスト生成 $canonical_request = "{$method}\n"; $canonical_request .= "{$canonical_uri}\n"; $canonical_request .= "{$canonical_querystring}\n"; $canonical_request .= "{$canonical_headers}\n"; $canonical_request .= "{$signed_headers}\n"; $canonical_request .= "{$payload_hash}"; $credential_scope = "{$datestamp}/{$region}/{$service}/aws4_request"; $string_to_sign = "{$algorithm}\n"; $string_to_sign .= "{$amzdate}\n"; $string_to_sign .= "{$credential_scope}\n"; $string_to_sign .= hash('sha256', $canonical_request); $signing_key = getSignature($secret_key, $datestamp, $region, $service); $signature = hash_hmac('sha256', $string_to_sign, $signing_key); $authorization_header = "{$algorithm} Credential={$access_key}/{$credential_scope}, SignedHeaders={$signed_headers}, Signature={$signature}"; $headers = array("x-amz-content-sha256: {$payload_hash}", "Authorization: {$authorization_header}", "x-amz-date: {$amzdate}"); $request_url = rtrim("{$endpoint}?{$canonical_querystring}", "?"); $context = array("http" => array("method" => $method, "header" => implode("\r\n", $headers))); $ret = file_get_contents($request_url, false, stream_context_create($context)); prn("payload_hash", $payload_hash); prn("canonical_headers", $canonical_headers); prn("string_to_sign", $string_to_sign); prn("canonical_request", $canonical_request); prn("Request", print_r($context, 1)); prn("Response-header", print_r($http_response_header, 1)); prn("Response-body", $ret); }
public function Editar(modelAssinaturaDigital $model) { try { $sql = "UPDATE FROM nfe_assinaturadigital SET pedido = :pedido, signature = :signature"; $p_sql = Conexao::getInstance()->prepare($sql); $p_sql->bindValue(":pedido", $model->getPedido()); $p_sql->bindValue(":signature", getSignature()); return $p_sql->execute(); } catch (Exception $e) { print "Ocorreu um erro ao tentar executar esta ação tente novamente mais tarde."; CriaLog::Logger('Erro: Código: ' . $e->getCode() . ' Mensagem: ' . $e->getMessage()); } }
/** * Sign the request when requesting a request token * @param $curl * @param $urlCallback * @param $signatureMethod */ public function signForRequestToken($curl, $urlCallback, $signatureMethod = null) { if( $signatureMethod === null) { $signatureMethod = new \Zeflasher\OAuth\SignatureMethods\OAuthSignatureMethodHmacSha1(); } $oauthParameters = new \Zeflasher\OAuth\Client\OAuthParameters($this->_consumerKey, $signatureMethod); $oauthParameters->addParameters(urlRequest.data); $oauthParameters->addParameters(_getGETParameters(urlRequest)); $oauthParameters->add(OAuthConstants.CALLBACK, urlCallback); $signature = getSignature(urlRequest, oauthParameters, OAuthConstants.EMPTY_TOKEN_SECRET, signatureMethod); $oauthParameters->add(\Zeflasher\OAuth\OAuthConstants::OAUTH_CLIENT_SIGNATURE, $signature); // $headerString = $oauthParameters->getAuthorizationHeaderValue(); urlRequest.requestHeaders.push(\Zeflasher\OAuth\OAuthConstants::OAUTH_CLIENT_HEADER, $headerString); }
public function share() { $time_stamp = time(); $jsapi_ticket = $this->wxinterface->getJsApiTicket(APPID, APPSECRET); $protocol = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443 ? 'https://' : 'http://'; $url = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $nonce_str = createNonceStr(); $signature_str = getSignature($jsapi_ticket, $url, $time_stamp, $nonce_str); $data['appid'] = APPID; $data['timestamp'] = $time_stamp; $data['noncestr'] = $nonce_str; $data['signature'] = $signature_str; $data['url'] = $url; $data['title'] = '分享'; $data['template'] = 'wx/wxtest'; $this->data = array_merge($data, $this->_share()); $this->_show_page(); }
function makePostParamsUrl($params) { if (is_array($params)) { $sign = getSignature($params, ordersys_conf::SESSION_SECRET); if (is_string($sign)) { $arr_temp = array(); foreach ($params as $key => $val) { $arr_temp[$key] = $val; } $arr_temp['sign'] = $sign; $str_url = http_build_query($arr_temp); return $str_url; } else { return false; } } else { return false; } }
function post($id, $key, $endpoint, $format, $dataId, $data) { if (!isset($dataId, $data)) { return null; } try { // calculate API signature $signature = getSignature("", $key); // create the curl object. // - POST always requires the object's id $curl = getCurl($id, $key, $signature, "{$endpoint}/{$dataId}", "", $format); // set extra curl options required by POST curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // POST something $curl_result = curl_exec($curl); error_log($curl_result); curl_close($curl); return $curl_result; } catch (Exception $e) { error_log('Error: ' + $e); } }
/** * licenseDataForDictionary * Get the signed plist for a dictionary * @param array Associative array (i.e. dictionary) of key-value pairs * @param string Hexadecimal string of public key * @param string Hexadecimal string the private key * @return string License file as plist */ function licenseDataForDictionary($dict, $pubKey, $privKey) { $sig = chunk_split(getSignature($dict, $pubKey, $privKey)); $plist = "<?xml version=\"1.0\" encoding=\"UTF-8\"?" . ">\n"; $plist .= "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"; $plist .= "<plist version=\"1.0\">\n<dict>\n"; foreach ($dict as $key => $value) { $plist .= "\t<key>" . htmlspecialchars($key, ENT_NOQUOTES) . "</key>\n"; $plist .= "\t<string>" . htmlspecialchars($value, ENT_NOQUOTES) . "</string>\n"; } $plist .= "\t<key>Signature</key>\n"; $plist .= "\t<data>{$sig}</data>\n"; $plist .= "</dict>\n"; $plist .= "</plist>\n"; return $plist; }
if (argsLen($args, 1)) { getCostCenter($args[0]); } else { incorrect(); } break; case 'getCrewRegional': if (argsLen($args, 1)) { getCrewRegional($args[0]); } else { incorrect(); } break; case 'getSignature': if (argsLen($args, 1)) { getSignature($args[0]); } else { incorrect(); } break; // -------------- HARDCODED EXPENSE VALUES // -------------- HARDCODED EXPENSE VALUES case 'getPerDiem': if (argsLen($args, 0)) { getPerDiem(); } else { incorrect(); } break; case 'getHotel': if (argsLen($args, 0)) {
<input type="hidden" name="LMI_PAYMENT_DESC" value="' . $paymentDesc . '" /> <input type="hidden" name="LMI_PAYMENT_NO" value="' . $payment_no . '" /> <input type="hidden" name="LMI_PAYEE_PURSE" value="' . $pay_to_purse . '" /> <input type="hidden" name="SignatureValue" value="' . $crc . '" /> <input type="hidden" name="OrderID" value="' . $payment_orderid . '" /> '; if ($resultURL) { $h_inputs .= ' <input type="hidden" name="LMI_RESULT_URL" value="' . $resultURL . '" />'; } break; ########################################## ########################################## case "robokassa": $pay_action = $payTest != 'true' ? 'https://merchant.roboxchange.com/Index.aspx' : 'http://test.robokassa.ru/Index.aspx'; $crc = getSignature($mrh_login, $mrh_pass1, $payment_value, $payment_orderid, $payment_no); $h_inputs = ' <input type="hidden" name="MrchLogin" value="' . $mrh_login . '" /> <input type="hidden" name="OutSum" value="' . $payment_value . '" /> <input type="hidden" name="InvId" value="' . $payment_no . '" /> <input type="hidden" name="Desc" value="' . $paymentDesc . '" /> <input type="hidden" name="SignatureValue" value="' . $crc . '" /> <input type="hidden" name="Shp_item" value="' . $payment_orderid . '" /> <input type="hidden" name="Email" value="' . $email . '" /> <input type="hidden" name="IncCurrLabel" value="' . $in_curr . '" /> <input type="hidden" name="Culture" value="' . $culture . '" /> '; break; default: break; }
<input name="subject" id="subject" maxlength=30 value="" type="text" style="width: 300px"> <script type="text/javascript"> var subject=new LiveValidation('subject'); subject.add(Validate.Presence); </script> </td> </tr> <tr> <td colspan=2> <b><?php print _('Body'); ?> *</b> <?php //Attempt to build a signature for the user $signature = getSignature($guid, $connection2, $_SESSION[$guid]["gibbonPersonID"]); print getEditor($guid, TRUE, "body", $signature, 20, true, true, false, true); ?> </td> </tr> <select name="roleCategories[]" id="roleCategories[]" multiple style="display: none"> <?php try { $dataSelect = array(); $sqlSelect = "SELECT DISTINCT category FROM gibbonRole ORDER BY category"; $resultSelect = $connection2->prepare($sqlSelect); $resultSelect->execute($dataSelect); } catch (PDOException $e) { } while ($rowSelect = $resultSelect->fetch()) {
function generateLicenseAP() { // Much of the following code is adapted/copied from AquaticPrime's PHP library... // Create our license dictionary to be signed $dict = array("Product" => $this->item_name, "Name" => utf8_encode($this->first_name . ' ' . $this->last_name), "Email" => utf8_encode($this->payer_email), "Licenses" => $this->quantity, "Timestamp" => date('r', strtotime($this->dt)), "TransactionID" => $this->txn_id); // $search = explode(",","ç,æ,œ,á,é,í,ó,ú,à,è,ì,ò,ù,ä,ë,ï,ö,ü,ÿ,â,ê,î,ô,û,å,e,i,ø,u"); // $replace = explode(",","c,ae,oe,a,e,i,o,u,a,e,i,o,u,a,e,i,o,u,y,a,e,i,o,u,a,e,i,o,u"); // foreach($dict as $k => $v) // $dict[$k] = str_replace($search, $replace, $v); $app = new Application($this->app_id); $sig = chunk_split(getSignature($dict, $app->ap_key, $app->ap_pkey)); $plist = "<?xml version=\"1.0\" encoding=\"UTF-8\"?" . ">\n"; $plist .= "<!DOCTYPE plist PUBLIC \"-//Apple Computer//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n"; $plist .= "<plist version=\"1.0\">\n<dict>\n"; foreach ($dict as $key => $value) { $value = utf8_encode($value); $plist .= "\t<key>" . htmlspecialchars($key, ENT_NOQUOTES) . "</key>\n"; $plist .= "\t<string>" . htmlspecialchars($value, ENT_NOQUOTES) . "</string>\n"; } $plist .= "\t<key>Signature</key>\n"; $plist .= "\t<data>{$sig}</data>\n"; $plist .= "</dict>\n"; $plist .= "</plist>\n"; $this->license = $plist; $this->update(); }
if ($_POST['PaySummCustom'] != 0) { $Subtotal_P = vf(trim($_POST['PaySummCustom'])); } } $Order_IDP = 'UNT|' . $customer_id . '|' . $Subtotal_P . '|' . time(); $MeanType = $confUniteller['MEAN_TYPE']; $EMoneyType = $confUniteller['EMONEY_TYPE']; //void _TYPE opts in testing mode if ($debugMode) { $MeanType = ''; $EMoneyType = ''; } $URL_RETURN_OK = $confUniteller['URL_RETURN_OK']; $URL_RETURN_NO = $confUniteller['URL_RETURN_NO']; $password = $confUniteller['PASSWORD']; $Signature = getSignature($Shop_IDP, $Order_IDP, $Subtotal_P, $MeanType, $EMoneyType, $Lifetime, $Customer_IDP, $Card_IDP, $IData, $PT_Code, $password); function paysumm_form($nominals, $merchant_currency) { //сборка выбиралки if (!empty($nominals)) { $moneySub = ''; foreach ($nominals as $each) { $moneySub .= '<input name="PaySumm" id="cash' . $each . '" value="' . $each . '" checked="" type="radio"> <label for="cash' . $each . '">' . $each . ' ' . $merchant_currency . '</label><br>' . "\n"; } $moneySub .= '<input type="text" name="PaySummCustom" value="0" size="5"> другая сумма <br>'; } else { $moneySub = '<input type="text" name="PaySumm" value="" size="5"> Введите сумму платежа'; } $result = ' <form action="" method="POST"> ' . $moneySub . '
// время жизни формы оплаты в секундах $Order_ID = getOrderID(); // Сумма для оплаты и идентификатор зарегистрированного пользователя могу храниться в $Customer_IDP = $user['uid']; $Email = $user['email']; $phone = $user['phone']; // Адреса возврата после успешной и неуспешной оплат покупателями $URL_RETURN_OK = $systemOptions[$systemName . '_URL_RETURN_OK']; $URL_RETURN_NO = $systemOptions[$systemName . '_URL_RETURN_NO']; $password = $systemOptions[$systemName . '_password']; // пароль из ЛК Uniteller $EMoneyType = $systemOptions[$systemName . '_EMoneyType']; $MeanType = $systemOptions[$systemName . '_MeanType']; // Подпись для формы, вместо неиспользуемых параметров передаются пустые строки //$EMoneyType = ''; $Signature = getSignature($Shop_IDP, $Order_ID, $amount, $MeanType, $EMoneyType, $Lifetime, $Customer_IDP, "", "", "", $password); ?> <form action="https://wpay.uniteller.ru/pay/" method="POST"> <input type="hidden" name="Shop_IDP" value="<?php echo $Shop_IDP; ?> "> <input type="hidden" name="Order_IDP" value="<?php echo $Order_ID; ?> "> <input type="hidden" name="Subtotal_P" value="<?php echo $amount; ?> ">
<?php /** * 测试 * User: young * Date: 16/8/11 * Time: 下午5:24 */ /** * 获得qq的校验签名 * actid = 124687 用于查询是否qqvip * actid = 97113 用于免授权登录 */ function getSignature($params, $appkey) { // 按照字典顺序排列参数名 $paramKeySort = array_keys($params); sort($paramKeySort, SORT_STRING); $paramStr = ''; foreach ($paramKeySort as $key) { $paramStr .= $key . "=" . $params[$key] . '&'; } $paramStr .= "appkey=" . $appkey; // md5校验 return md5($paramStr); } $params = ['appid' => '100536144', 'openid' => '7DD97827918E2C7C733371879EFED9DE', 'actid' => '124687', 'ts' => time()]; $appkey = '92138723efba705d39e127d1dd24f129'; var_dump($params); var_dump(getSignature($params, $appkey));
public function paysend() { //Getting API-ID from config $apiID = $this->config->get('bcp_payment_api'); //test mode check $testMode = 0; //if set to 1, test mode will be set if (!$testMode) { $payurl = 'https://www.bitcoinpay.com/api/v1/payment/btc'; } else { $payurl = 'https://bitcoinpaycom.apiary-mock.com/api/v1/payment/btc'; } //data preparation $this->load->model('checkout/order'); $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']); $price = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false); $idoforder = $order_info['order_id']; $cname = html_entity_decode($order_info['payment_firstname'], ENT_QUOTES, 'UTF-8'); $csurname = html_entity_decode($order_info['payment_lastname'], ENT_QUOTES, 'UTF-8'); $cnamecomplete = "{$cname} {$csurname}"; $cemail = html_entity_decode($order_info['email'], ENT_QUOTES, 'UTF-8'); //additional customer data $customData = array('customer_name' => $cnamecomplete, 'order_number' => intval($idoforder), 'customer_email' => $cemail); $jCustomData = json_encode($customData); //data packing //additional checks $notiEmail = $this->config->get('bcp_payment_email'); $lang = $this->session->data['language']; $settCurr = $this->config->get('bcp_payment_currency'); if (strlen($settCurr) != 3) { $settCurr = "BTC"; } $postData = array('settled_currency' => $settCurr, 'return_url' => $this->url->link('payment/bcp_payment/return_url'), 'notify_url' => $this->url->link('payment/bcp_payment/callback', '', 'SSL'), 'price' => floatval($price), 'currency' => $order_info['currency_code'], 'reference' => json_decode($jCustomData)); if ($notiEmail !== NULL && strlen($notiEmail) > 5) { $postData['notify_email'] = $notiEmail; } if (strcmp($lang, "cs") !== 0 || strcmp($lang, "en") !== 0 || strcmp($lang, "de") !== 0) { $postData['lang'] = "en"; } else { $postData['lang'] = $lang; } $content = json_encode($postData); //sending data via cURL $curlheaders = array("Content-type: application/json", "Authorization: Token {$apiID}"); $curl = curl_init($payurl); curl_setopt($curl, CURLOPT_HEADER, true); curl_setopt($curl, CURLOPT_VERBOSE, true); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, $curlheaders); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //bypassing ssl verification, because of bad compatibility curl_setopt($curl, CURLOPT_POSTFIELDS, $content); //sending to server, and waiting for response $response = curl_exec($curl); $header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE); $jHeader = substr($response, 0, $header_size); $jBody = substr($response, $header_size); $jHeaderArr = $this->get_headers_from_curl_response($jHeader); //http response code $status = curl_getinfo($curl, CURLINFO_HTTP_CODE); //callback password check if (($callbackPass = $this->config->get('bcp_payment_password')) != NULL) { $digest = getSignature($jHeaderArr[0]); $hashMsg = $jBody . $callbackPass; $checkDigest = hash('sha256', $hashMsg); if (strcmp($digest, $checkDigest) == 0) { $security = 1; } else { $security = 0; } } else { $security = 1; } if ($status != 200) { die("Error: call to URL {$payurl} failed with status {$status}, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl) . "<br /> Please contact shop administrator..."); curl_close($curl); } elseif (!$security) { die("Error: Callback password does not match! <br />Please contact shop administrator..."); curl_close($curl); } else { curl_close($curl); $response = json_decode($jBody); //adding paymentID to payment method $prePaymentMethod = html_entity_decode($order_info['payment_method'], ENT_QUOTES, 'UTF-8'); $finPaymentMethod = $prePaymentMethod . "<br /><strong>PaymentID: </strong>" . $response->data->payment_id; $paymentQuery = $this->db->query("UPDATE `" . DB_PREFIX . "order` SET `payment_method` = '" . $finPaymentMethod . "' WHERE `order_id` = " . $order_info['order_id']); //redirect to pay gate $paymentUrl = $response->data->payment_url; header("Location: {$paymentUrl}"); die; } }
<?php /** * Created by PhpStorm. * User: noname * Date: 02.11.2015 * Time: 9:19 */ $order_desc = "test order"; #Формируем ордер $order_id = startTransaction($LINK, $user, $amount, 'addons_yandex'); $params = array('amount' => $amount, 'shopId' => $systemOptions[$systemName . '_shopId'], 'scid' => $systemOptions[$systemName . '_scid'], 'url' => $systemOptions[$systemName . '_url'], 'customerNumber' => $user['uid'], 'shopArticleId' => $systemOptions[$systemName . '_shopArticleId'], 'paymentType' => $systemOptions[$systemName . '_paymentType'], 'orderNumber' => $order_id, 'cps_phone' => $user['phone'], 'cps_email' => $user['email']); $signature = getSignature($params, $systemOptions[$systemName . '_secret_seed']); function getSignature($inputData, $secret_seed) { if (empty($inputData)) { return false; } ksort($inputData); $array = array_values($inputData); $str = implode('|', $array); $str = $secret_seed . '|' . $str; //return $str; return sha1($str); } //print $signature; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8">
/** * @return mixed */ public function getSignature() { $propertyNames = []; foreach ($this->properties as $property) { $propertyNames[] = $property->name; } return getSignature($propertyNames); }
function sendRequestMail($request_id) { if ($request_id != "") { $request_sql = "SELECT T_label." . $_SESSION['language'] . " AS Status, T_status.Name AS Status_name, T_request.Name, "; $request_sql .= "T_caver_a.Contact AS Aut_contact, T_caver_a.Nickname AS Aut_nick, "; $request_sql .= "T_caver_b.Contact AS Rec_contact, T_caver_b.Nickname AS Rec_nick "; $request_sql .= "FROM `" . $_SESSION['Application_host'] . "`.`T_topography` "; $request_sql .= "INNER JOIN `" . $_SESSION['Application_host'] . "`.`T_request` ON T_request.Id = T_topography.Id_request "; $request_sql .= "INNER JOIN `" . $_SESSION['Application_host'] . "`.`T_status` ON T_status.Id = T_request.Id_status "; $request_sql .= "INNER JOIN `" . $_SESSION['Application_host'] . "`.`T_label` ON T_label.Id = T_status.Id_label "; $request_sql .= "INNER JOIN `" . $_SESSION['Application_host'] . "`.`T_caver` T_caver_a ON T_caver_a.Id = T_request.Id_author "; $request_sql .= "INNER JOIN `" . $_SESSION['Application_host'] . "`.`T_caver` T_caver_b ON T_caver_b.Id = T_request.Id_recipient "; $request_sql .= "WHERE T_request.Id = '" . $request_id . "' "; $request_data = getDataFromSQL($request_sql, __FILE__, "function", __FUNCTION__); $status_lbl = $request_data[0]['Status']; $request_name = $request_data[0]['Name']; $status_name = $request_data[0]['Status_name']; $rec_contact = $request_data[0]['Rec_contact']; $rec_name = $request_data[0]['Rec_nick']; $aut_contact = $request_data[0]['Aut_contact']; $aut_name = $request_data[0]['Aut_nick']; $copy = false; switch ($status_name) { case "submitted": $mail_dest = $rec_contact; $name_dest = $rec_name; $mail_from = $aut_contact; $name_from = $aut_name; $subject = "<convert>#label=847<convert> '" . $request_name . "' <convert>#label=849<convert>."; //La demande : //vous a été envoyée $temp_body = "<convert>#label=851<convert>"; //Veuillez vérifier les droits d'auteurs et appliquer les modifications nécessaires à la topographie. Ensuite vous pourez choisir de valider ou refuser la demande. break; case "rejected": $mail_dest = $aut_contact; $name_dest = $aut_name; $mail_from = $rec_contact; $name_from = $rec_name; $subject = "<convert>#label=846<convert> '" . $request_name . "' <convert>#label=848<convert> '" . $status_lbl . "'."; //Votre demande : //est passée à l'état : $temp_body = "<convert>#label=852<convert>"; //Votre demande a été rejetée, la cause du rejet peut être indiquée dans le champ commentaire de la demande. Veuillez modifier votre demande avant de la soumettre à nouveau. break; case "approved": trackAction("approve_request", $request_id, "T_request"); $mail_dest = $aut_contact; $name_dest = $aut_name; $mail_from = $rec_contact; $name_from = $rec_name; $subject = "<convert>#label=846<convert> '" . $request_name . "' <convert>#label=848<convert> '" . $status_lbl . "'."; //Votre demande : //est passée à l'état : $temp_body = "<convert>#label=853<convert>"; //Votre demande a été accepté et est dès à présent en ligne, vous pouvez consulter les topographies sur GrottoCenter.org. break; case "canceled": trackAction("cancel_request", $request_id, "T_request"); $mail_dest = $rec_contact; $name_dest = $rec_name; $mail_from = $aut_contact; $name_from = $aut_name; $subject = "<convert>#label=847<convert> '" . $request_name . "' <convert>#label=850<convert>."; //La demande : //a été signalée comme illicite $temp_body = "<convert>#label=851<convert>"; //Veuillez vérifier les droits d'auteurs et appliquer les modifications nécessaires à la topographie. Ensuite vous pourez choisir de valider ou refuser la demande. break; } $mail_body = "<p><convert>#label=470<convert> " . $name_dest . ",<br />"; //Bonjour $mail_body .= $subject . "<br/>"; $mail_body .= $temp_body . "</p>"; $mail_body .= "<ul><li><convert>#label=854<convert> " . $name_dest . " " . $mail_dest . "</li>"; //Vous : $mail_body .= "<li><convert>#label=855<convert> " . $name_from . " " . $mail_from . "</li>"; //Votre contact (Leader) : $mail_body .= "<li><convert>#label=861<convert>: " . $request_id . "</li></ul>"; //Numéro de la demande : $mail_body .= getSignature(); return sendMail($mail_dest, $subject, $mail_body, "", "", $copy); } else { return false; } }