Имя: Пароль:
1C
1С v8
Обработка php-запросов в 1С
,
0 Конструктор
 
22.02.12
00:53
Всем привет.

Есть скрипт следующего вида:


// your registration data
$mrh_login = "test"; // your login here
$mrh_pass1 = "securepass2"; // merchant pass1 here

// order properties
$inv_id = 5; // shop's invoice number
            // (unique for shop's lifetime)
$inv_desc = "desc"; // invoice desc
$out_summ = "5.12"; // invoice summ

// build CRC value
$crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1");

// build URL
$url = "https://merchant.roboxchange.com/Index.aspx?MrchLogin=$mrh_login&". "OutSum=$out_summ&InvId=$inv_id&Desc=$inv_desc&SignatureValue=$crc";

// print URL if you need echo "<a href='/ru/$url'>Payment link</a>";



Это переадресация на сайт оплаты. Это можно реализовать в вэб-клиенте?
Сформировать ссылку и выполнить переход.
1 Asmody
 
22.02.12
00:56
(0) см. HTTPСоединение
2 IamAlexy
 
22.02.12
00:56
"веб-клиент" выбран из за того что в этом названии есть созвучное "веб", типа интуитивно раз "веб" значит интернет ?
3 Конструктор
 
22.02.12
00:57
Суть: мне в вэб-клиенте необходимо обкатать оплату через эту платежную систему. есть три куска кода:
- отправка запроса с начальными данными;
- получение ResultURL (уведомление об оплате)
- проверка параметров оплаты
4 Конструктор
 
22.02.12
00:58
(2) Естественно..
5 Конструктор
 
22.02.12
01:01
(1) Сейчас попробую вкурить немного. Подозревал, что придется его использовать
6 Asmody
 
22.02.12
01:02
(3) .зачем все это делать на клиенте?
7 Asmody
 
22.02.12
01:02
(5) там все элементарно
8 Конструктор
 
22.02.12
01:03
(7) У тебя был опыт реализации подобной задачи?
9 Asmody
 
22.02.12
01:06
(8) какой? Отправить в веб запрос, получить ответ, разобрать, отправить еще запрос?  Ну, был. Там ничего сложного, ну, кроме печенек.
10 Конструктор
 
22.02.12
01:09
Ну, вот смотри, на примере приведенного кода, как мне использовать HTTPСоединение? Куда мне код впихнуть? В файл?
11 Конструктор
 
22.02.12
01:10
к тому же, нужно создать вкладку что ли или открыть новое окно, в котором выполнить переадресацию по сфорированной ссылке
12 Конструктор
 
22.02.12
01:11
а в текущем окне клиента по нажатию на какой-нибудь батон, получить Result
13 Конструктор
 
22.02.12
01:11
Ну или обработчик ожидания повесить на сервере
14 Конструктор
 
22.02.12
01:11
Направление верное?
15 Конструктор
 
22.02.12
01:12
Я просто в php слабо шарю
16 Asmody
 
22.02.12
01:13
Сдается мне, ты и в 1С не шаришь.
17 Конструктор
 
22.02.12
01:14
(16) я с HTTPСоединением не работал никогода, только и всего
18 Конструктор
 
22.02.12
01:21
Понятно, "гав, и под лавку", ну и на том спасибо.
19 Конструктор
 
22.02.12
01:21
Мог бы предложить подзаработать
20 Asmody
 
22.02.12
01:21
(17) тогда ответь на принципиальный вопрос в (6)
21 Конструктор
 
22.02.12
01:22
Ты с робокассой работал?
22 Конструктор
 
22.02.12
01:23
мне в 1С нужно получить статус оплаты заказа.
23 Конструктор
 
22.02.12
01:23
через робокассу
24 Конструктор
 
22.02.12
01:24
оплата инициируется из 1С, потому что сумма должна формирваться именно там и не меняться
25 Asmody
 
22.02.12
01:24
(18) у меня,  если что,  полвторого ночи. Нормальные люди спят давно
26 Asmody
 
22.02.12
01:24
(24) почему на клиенте?
27 Конструктор
 
22.02.12
01:24
у меня тоже)) наверное, я ненормальный
28 Конструктор
 
22.02.12
01:25
(26) хорошо, с начала)) чувак заходит в вэб-клиент как в инет-магазин..... дальше продолжать?
29 Конструктор
 
22.02.12
01:26
я понимаю, что это изврат -  и проще было использовать cms.
30 Конструктор
 
22.02.12
01:27
с обменом
31 Asmody
 
22.02.12
01:32
(28) почему обмен с робокассой надо делать на клиенте? Почему его нельзя реализовать на сервере?
Это я к тому, что на сервере можно выполнить любой (или почти любой) запрос к сайту, а с клиента передать нужные параметры.
32 Конструктор
 
22.02.12
01:34
(31) да блин! это не проблема)) понятное дело, что код будет выполняться там, где ему следует выполняться)) я тебя не понял просто сначала
33 Asmody
 
22.02.12
01:44
(32) ну а раз так,  то ничего не мешает на севере через метод Получить() отправить робокассе нужный урл и обработать ответ.Единственное,  с md5 помудохаться придется.
С другой стороны, если хочется интерактива,  то можно на форму кинуть гиперссылку,  по ней открывать другую форму с полем хтмл-документа,  либо создавать такое в текущей форме, ставить ему нужный локейшн, вешать событие на нажатие кнопки в этом поле, а уже по ним вызывать обработку проверки оплаты.
34 Asmody
 
22.02.12
01:45
В общем, ничего принципиально сложного нет. Кодить много.
35 Конструктор
 
22.02.12
01:47
интерактив в любом случае нужен, потому что робокасса позволяет выбирать поставщика услуг (т.е. работает как посредник)
36 Конструктор
 
22.02.12
01:49
Спасибо, матчасть пошел учить по использованию httpсоед.
37 Asmody
 
22.02.12
01:56
(35) это хреново. Точнее,  это, конечно, хорошо, удобно, наверное, но в нашем случае хреново.А почему хреново? Потому что ловля момента завершения оплаты на робокассе превращается в нетривиальную задачу. Ведь скорее всего, ей нужно передать callback-url, а в нашем случае такого может и не быть.
38 Конструктор
 
22.02.12
02:05
// as a part of ResultURL script

// your registration data
$mrh_pass2 = "securepass2"; // merchant pass2 here

// HTTP parameters:
$out_summ = $_REQUEST["OutSum"];
$inv_id = $_REQUEST["InvId"];
$crc = $_REQUEST["SignatureValue"];

// HTTP parameters: $out_summ, $inv_id, $crc
$crc = strtoupper($crc);

// force uppercase
// build own CRC
$my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2"));

if (strtoupper($my_crc) != strtoupper($crc)) { echo "bad sign\n"; exit(); }

// print OK signature
echo "OK$inv_id\n";

// perform some action (change order state to paid)
39 Конструктор
 
22.02.12
12:55
там, оказывается, все на post/get запросах через xml можно разрулить. Виктор, спасибо тебе огроменное.
40 Конструктор
 
22.02.12
14:19
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.