Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите с подключением Интеркассы 2.0 / 5 сообщений из 5, страница 1 из 1
08.09.2014, 13:22
    #38740468
meg17m
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подключением Интеркассы 2.0
Здравствуйте! Очень нужен сниппет кода status_url для интеркассы 2.0.
Сейчас пишу на кохане:

Код: 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.
Kohana::$log->add(Kohana_Log::INFO, "Start" );
		
		Kohana::$log->add(Kohana_Log::INFO, $_POST['ik_co_id'] );
		$dataSet = array();
		
		  $ik_co_id = trim($_POST['ik_co_id']);
		  $ik_pm_no = $_POST['ik_pm_no']; 
		  $ik_desc = $_POST['ik_desc']; 
		  $ik_pw_via = $_POST['ik_pw_via']; 
		  $ik_am = $_POST['ik_am']; 
		  $ik_cur = $_POST['ik_cur']; 
		  $ik_act = $_POST['ik_act']; 
		  $ik_x_service = $_POST['ik_x_service']; 
		  $ik_x_system = $_POST['ik_x_system']; 
		  $ik_inv_id  = $_POST['ik_inv_id ']; 
		  $ik_co_prs_id = $_POST['ik_co_prs_id']; 
		  $ik_trn_id = $_POST['ik_trn_id']; 
		  $ik_inv_crt = $_POST['ik_inv_crt']; 
		  $ik_inv_prc = $_POST['ik_inv_prc']; 
		  $ik_inv_st = $_POST['ik_inv_st']; 
		  $ik_ps_price = $_POST['ik_ps_price']; 
		  $ik_co_rfn = $_POST['ik_co_rfn'];
		  $ik_sign = $_POST['ik_sign']; 
		  
		  $dataSet['ik_co_id'] = trim($_POST['ik_co_id']); 
		  $dataSet['ik_pm_no'] = $_POST['ik_pm_no']; 
		  $dataSet['ik_desc'] = $_POST['ik_desc']; 
		  $dataSet['ik_pw_via'] = $_POST['ik_pw_via']; 
		  $dataSet['ik_am'] = $_POST['ik_am']; 
		  $dataSet['ik_cur'] = $_POST['ik_cur']; 
		  $dataSet['ik_act'] = $_POST['ik_act']; 
		  $dataSet['ik_x_service'] = $_POST['ik_x_service']; 
		  $dataSet['ik_x_system'] = $_POST['ik_x_system']; 
		  $dataSet['ik_inv_id']  = $_POST['ik_inv_id ']; 
		  $dataSet['ik_co_prs_id'] = $_POST['ik_co_prs_id']; 
		  $dataSet['ik_trn_id'] = $_POST['ik_trn_id']; 
		  $dataSet['ik_inv_crt'] = $_POST['ik_inv_crt']; 
		  $dataSet['ik_inv_prc'] = $_POST['ik_inv_prc']; 
		  $dataSet['ik_inv_st'] = $_POST['ik_inv_st']; 
		  $dataSet['ik_ps_price'] = $_POST['ik_ps_price']; 
		  $dataSet['ik_co_rfn'] = $_POST['ik_co_rfn'];
		  $dataSet['ik_sign'] = $_POST['ik_sign']; 
		  
		  Kohana::$log->add(Kohana_Log::INFO, $ik_co_id);
		  
		  if ($ik_co_id = '789324832h4h32h49h32h4')
		  {
			$_sekret_key = 'megasekretxxxyyy';
			
			unset($dataSet['ik_sign']); //удаляем из данных строку подписи
			ksort($dataSet, SORT_STRING); // сортируем по ключам в алфавитном порядке элементы массива
			array_push($dataSet, $_sekret_key); // добавляем в конец массива "секретный ключ"
			$signString = implode(':', $dataSet); // конкатенируем значения через символ ":"
			$sign = base64_encode(md5($signString, true)); // берем MD5 хэш в бинарном виде посформированной строке и кодируем в BASE64
			
			
			Kohana::$log->add(Kohana_Log::INFO, $ik_sign."---".$sign);

			
			if($ik_sign === $sign) 
			{
				
				Kohana::$log->add(Kohana_Log::INFO, "signok");

				//------------------------------------------ Создаем купон ---------------------------------------------------------------
				if ($ik_inv_st == 'success')
				{
						
						Kohana::$log->add(Kohana_Log::INFO, "stateok");
			
						$amount = $ik_am;
						$userID = $this->user->id;
						$paymentType = $_POST['ik_x_service'];
						$paymentSystem = $_POST['ik_x_system'];
						
						$dateInsert = date('Y-m-d H:i:s');
						
						DB::query(Database::INSERT, "INSERT INTO `paymenttable`
                                                        (`user_id`,`amount`,`status`,`dateInsrt`,`paymentService`,`paymentSystem`,`userIP`)
                                                            VALUES(:user_id, :amount, :status, :dateInsert, :paymentService, :paymentSystem, :userIP)")
                                                    ->bind(':user_id', $userID)
                                                    ->bind(':amount', $amount)
                                                    ->bind(':status', Pay::PROCESSED)
                                                    ->bind(':dateInsert', $dateInsert)
                                                    ->bind(':paymentService', $paymentType)
                                                    ->bind(':paymentSystem', $paymentSystem)
                                                    ->bind(':userIP', Request::$client_ip)
                                                    ->execute();
						Model::factory('Pay')->reSetBalance($amount);
						
						Kohana::$log->add(Kohana_Log::INFO, "okok");
					}
				
				//------------------------------------------------------------------------------------------------------------------------
							
			} 
		  }



В итоге, уже второй лог не отрабатывает:
Код: php
1.
Kohana::$log->add(Kohana_Log::INFO, $_POST['ik_co_id'] );
...
Рейтинг: 0 / 0
14.12.2014, 21:51
    #38833618
Димонов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подключением Интеркассы 2.0
У меня почему-то в поле $_POST['ik_sign'] ничего не попадает от интеркассы, всё остальное есть, а сигн нет. Нет с чем сравнивать подпись. В чём может быть проблема?
...
Рейтинг: 0 / 0
15.12.2014, 10:02
    #38833817
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подключением Интеркассы 2.0
проблемма может в этом?
Код: php
1.
if ($ik_co_id = '789324832h4h32h49h32h4')
...
Рейтинг: 0 / 0
15.12.2014, 13:26
    #38834069
Димонов
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подключением Интеркассы 2.0
нет. Я не могу поле массива $_POST[ik_sign] записать в переменную $sign для дальнейшего сравнения подписи интеркассы и моей, которую я подготавливаю на своей стороне. Поле оказывается пустым $_POST[ik_sign]. Мне говорят что нужно сделать логирование потому что общение идёт сервер - сервер. А потом оттуда брать ik_sign. Как мне это сделать?
...
Рейтинг: 0 / 0
15.12.2014, 14:33
    #38834148
kunaksergey
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с подключением Интеркассы 2.0
Димонов,

у вас $dataSet['ik_sign'] всегда будет "Undefined", поскольку строка if ($ik_co_id = '789324832h4h32h49h32h4') -всегда будет true;
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Помогите с подключением Интеркассы 2.0 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]