Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
sprign
1

post -ответ

21.02.2013, 23:01. Показов 2572. Ответов 1
Метки нет (Все метки)

доброго дня .ребята может у кого есть минутка посмотреть скрипт и подсказать какие строки прописать ,что б вернуть post запрос

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
<?php
 
 
defined('_JEXEC') or die('Restricted access');
 
class pm_kasa extends PaymentRoot {
    
    function getTag( $tag, $xml ) {
      $tag = preg_quote($tag);
      preg_match('{<'.$tag.'[^>]*>(.*?)</'.$tag.'>'.'}',
                   htmlspecialchars_decode($xml),
                   $matches);
 
      return $matches[1];
    }
 
    function loadLanguageFile($langtag = ""){
        $lang = &JFactory::getLanguage();
        if ($langtag==""){
            $langtag = $lang->getTag();
        }                              
        if(file_exists(JPATH_ROOT . '/components/com_jshopping/payments/pm_kasa/lang/'.$langtag.'.php'))
            require_once (JPATH_ROOT . '/components/com_jshopping/payments/pm_kasa/lang/'.$langtag.'.php');
        else 
            require_once (JPATH_ROOT . '/components/com_jshopping/payments/pm_kasa/lang/en-GB.php');
    }
    
    function showPaymentForm($params, $pmconfigs) {
        include(dirname(__FILE__)."/paymentform.php");
    }
    
    //function call in admin
    function showAdminFormParams($params) {
        $array_params = array('merchant_id', 'merchant_sig','transaction_end_status', 'transaction_pending_status', 'transaction_failed_status', 'pay_way', 'exp_time');
        foreach ($array_params as $key) {
            if (!isset($params[$key])) $params[$key] = '';
        } 
        $orders = &JModel::getInstance('orders', 'JshoppingModel'); //admin model
        pm_kasa::loadLanguageFile();
        include(dirname(__FILE__)."/adminparamsform.php");    
    }
    
    function checkTransaction($pmconfigs, $order, $act) {
 
        $jshopConfig = &JSFactory::getConfig();
         $xml = $_POST['operation_xml'];
       
        $xml_decoded = base64_decode($xml);
        $merchant_sig = $pmconfigs['merchant_sig'];
        $signature = base64_encode(sha1($merchant_sig . $xml_decoded. $merchant_sig, 1)); 
 
        $currency_code_iso = trim($this->getTag("currency", $xml_decoded));
        $currency_code_iso = $currency_code_iso == 'UAH' ? 'UAH' : $currency_code_iso;
    $payment_status = trim($this->getTag("status", $xml_decoded));
 
        if ($signature != $_POST['signature']) {
            return array(0, 'Error signature. Order ID '.$order->order_id); }
        if ($order->order_total != $this->getTag("amount", $xml_decoded)) {
            return array(0, 'Error amount. Order ID '.$order->order_id);
        }
        if (($order->currency_code_iso == 'UAH' ? 'UAH' : $order->currency_code_iso) != $currency_code_iso) {
            return array(0, 'Error currency. Order ID '.$order->order_id);            
        }
        
        if ($payment_status == 'success') {
            return array(1, '');
        } elseif ($payment_status == 'wait_secure') {
            saveToLog("payment.log", "Status pending (".$payment_status."). Order ID ".$order->order_id);
            return array(2, "Status pending (".$payment_status.").");
        } elseif ($payment_status == 'delayed') {
            saveToLog("payment.log", "Status pending (".$payment_status."). Order ID ".$order->order_id);
            return array(2, "Status pending (".$payment_status.").");
        } elseif ($payment_status == 'failure') {
            return array(3, 'Status Failed. Order ID '.$order->order_id );
        } else {
            return array(0, "Order number ".$order->order_id."\nKASA error\nKASA status - ".$payment_status);
        }
    }
    
    
    function showEndForm($pmconfigs, $order) {
        
        $jshopConfig = &JSFactory::getConfig();        
        /*$item_name = sprintf(_JSHOP_PAYMENT_PRODUCT_IN_SITE, $jshopConfig->store_name);*/
        $item_name = sprintf(_JSHOP_PAYMENT_NUMBER, $order->order_number);
        
        $host = "merchant.w1.ru/checkout/default.aspx";
        
        $email = $pmconfigs['email_received'];
         $notify_url = JURI::root() . "index.php?option=com_jshopping&amp;controller=checkout&amp;task=step7&amp;act=notify&amp;js_paymentclass=pm_kasa&amp;no_lang=1";
        $return = JURI::root(). "index.php?option=com_jshopping&amp;controller=checkout&amp;task=step7&amp;act=return&amp;js_paymentclass=pm_kasa";
        $cancel_return = JURI::root() . "index.php?option=com_jshopping&amp;controller=checkout&amp;task=step7&amp;act=cancel&amp;js_paymentclass=pm_kasa";
        
        $merchant_id = $pmconfigs['merchant_id'];
        $merchant_sig = $pmconfigs['merchant_sig'];
        $currency_code_iso = $order->currency_code_iso;
        $currency_code_iso = $currency_code_iso == 'UAH' ? 'UAH' : $currency_code_iso;
        
        // ----------- START KASA Request ----------- //
        $xml='<request>' .
            '<version>1.2</version>' .
            '<merchant_id>' . $merchant_id . '</merchant_id>' .
            '<result_url>' . $return . '</result_url>' .
            '<server_url>' . $notify_url . '</server_url>' .
            '<order_id>' . $order->order_id . '</order_id>' .
            '<amount>' . $order->order_total . '</amount>' .
            '<currency>' . $currency_code_iso . '</currency>' .
            '<description>' . $item_name . '</description>' .
            '<default_phone>' . $order->phone . '</default_phone>' .
            '<pay_way>' . $pmconfigs['pay_way'] . '</pay_way>' . //  
            '<exp_time>36</exp_time>' .
            '</request>';
        
        
        $operation_xml = base64_encode($xml);
        $signature = base64_encode(sha1($merchant_sig . $xml . $merchant_sig, 1));
        // ----------- END KASA Request ----------- //
        
        ?>
<html>
<body>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
 
 
     
        
         
         
 
<form id="paymentform" action="https://<?php print $host?>" name = "paymentform" method = "post">
                    <input type="hidden" name="WMI_MERCHANT_ID" value="<?php print  $merchant_id  ?>"/>
 
                    <input type="hidden" name="WMI_PAYMENT_AMOUNT" value="<?php print $order->order_total?>"/>
 
                    <input type="hidden" name="WMI_CURRENCY_ID" value="<?php print $order->currency_code_iso?>"/>
 
                    <input type="hidden" name="WMI_DESCRIPTION" value="<?php print $item_name;?>/ <?php print $order->d_f_name?>/<?php print $order->d_phone?>/<?php print $order->email?>"/>
 
                                        <input type="hidden" name="WMI_PAYMENT_NO" value="<?php print $item_name;?>"/>
 
                                        <input type="hidden" name="WMI_SUCCESS_URL" value="<?php print $$return?>"/>
 
                            <input type="hidden" name="WMI_FAIL_URL" value="<?php print $notify_url?>"/>
 
                                        <input type="hidden" name="WMI_CUSTOMER_FIRSTNAME" value="<?php print $order->d_f_name?>"/>
                   
                                        <input type="hidden" name="WMI_CUSTOMER_EMAIL" value="<?php print $order->email?>"/>
 
                        <input type="hidden" name="WMI_CUSTOMER_LASTNAME" value="<?php print $order->d_phone?>"/>
                                          
                                      <input type="hidden" name="WMI_signature" value="<?php print $signature?>"/>
                                         
                </form>
<?php print _JSHOP_REDIRECT_TO_PAYMENT_PAGE ?>
<br>
<script type="text/javascript">document.getElementById('paymentform').submit();</script>
</body>
</html>
        <?php
        die();
    }
    
    
    function getUrlParams($pmconfigs) {                        
 
        $params = array(); 
        
        $xml = JRequest::getString("operation_xml");
        $xml_decoded=base64_decode($xml);
        
        $params['order_id'] = $this->getTag('order_id', $xml_decoded);
        
        $params['checkReturnParams'] = $pmconfigs['checkdatareturn'];
        $params['hash'] = "";
        $params['checkHash'] = 0;
  
        return $params;
    }
 
}
?>
вот в таком виде скрипт работает но нет правильного ответа для завершения ,...если добавляю в форму строку <input type="hidden" name="operation_xml" value="<?php print $operation_xml?>" />
то получаю ошибку - operation_xml не может превышать 255 символов
......... для информации .....это рабочий скрипт оплаты который я немного переделал ,но практически не чего не менялось только форма изменилась ,была такой
HTML5
1
2
3
4
5
<form id="paymentform" action="https://<?php print $host?>/?do=clickNbuy" name = "paymentform" method = "post">
<input type="hidden" name="operation_xml" value="<?php print $operation_xml?>" />
<input type="hidden" name="signature" value="<?php print $signature?>" />
<input type='hidden' name='pm_description' value='2011-2013'>
</form>
..............за ранее спасибо ..................это форма оплаты единая касса для joomshopping ,если надо добавлю недостающие компоненты
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.02.2013, 23:01
Ответы с готовыми решениями:

POST - ОТВЕТ
Прошу не судить меня строго) я еще чайник ) Как сформировать POST ответ т. е. клиент шлет...

Ответ на POST запрос
Ребят ситуация следующая, есть пост запрос, все работает как надо, но вот беда в том что мне нужно...

Ответ на post запрос
использую phpmailer, а из браузера отправляю post-запрос методом fetch, чтобы не было перезагрузки...

Ответ сервера на get\post запросы
Ситуация такова: посылаю серверу запрос методом get или post в ответ получаю страницу в непонятной...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на PHP‌
1
52 / 52 / 9
Регистрация: 09.10.2009
Сообщений: 984
21.02.2013, 23:25 2
тебе в ооп раздел нужно ! да и теги соблюдать нужно .
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.02.2013, 23:25

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Cannot POST /post.php
После нажатия кнопки &quot;Отправить&quot;. Выскакивает ошибка Cannot POST /post.php. &lt;? //...

Ответ на post запрос
Как сделать ответ (не тот, который 200, а конкретно содержимое странички) в том же окне, откуда...

Получить post ответ в dbgrid
Добрый день. Как получить ответ от пост запроса не на memo, а на dbgrid? На memo у меня он выглядит...

Flask. Ответ на POST запрос
Пишу бота на вк. Использую callback API. Суть такова, что мне приходят POST запросы с событиями, а...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.