Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2010, 06:08
iseller вне форума Посмотреть профиль Отправить личное сообщение для iseller Найти все сообщения от iseller
  № 1  
Ответить с цитированием
iseller

Регистрация: Nov 2010
Сообщений: 7
По умолчанию WebMoney Merchant Interface на flash

Нужно вставить во флешку мерчант интерфейс вебмани. Webmoney.ru предлагает простой пример организации приема платежа через html:

Цитата:
<!-- pay.html -->
<html>
<head>
<title>Pay</title>
</head>
<body>

<form id=pay name=pay method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">

<p>пример платежа через сервис Web Merchant Interface</p>
<p>заплатить 1 WMZ...</p>

<p>
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1.0">
<input type="hidden" name="LMI_PAYMENT_DESC" value="тестовый платеж">
<input type="hidden" name="LMI_PAYMENT_NO" value="1">
<input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
<input type="hidden" name="LMI_SIM_MODE" value="0">
</p>
<p>
<input type="submit" value="submit">
</p>
</form>

</body>
</html>
Нужно сделать аналогичное на AS2, чтобы кнопка «оплатить» находилась во флеш-клипе.

Старый 25.11.2010, 10:08
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Наверное, вам нужно не просто чтобы кнопка "находилась" во флеше, но и платеж обеспечивался при ее нажатии? Но приведенный код во флеш вы не вставите.
Для выполнения того, что делает форма, попробуйте использовать класс LoadVars и его метод sendAndLoad. См. пример в хелпе.
Второе.
По приведенному вами коду в браузер после нажатия кнопки загружается код, которые выдает payment.asp, то есть обрабатывающий скрипт. Нужен ли его вывод или нет, неизвестно, смотрите сами. Ведь если будете использовать sendAndLoad скрипт отработается, но перезагрузки страницы не произойдет. Если там есть какая-то важная инфа, необходимая для вывода юзеру, нужно получить вывод скрипта в том же sendAndLoad, распарсить и отрисовать во флешке.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.11.2010 в 10:15.
Старый 25.11.2010, 12:25
iseller вне форума Посмотреть профиль Отправить личное сообщение для iseller Найти все сообщения от iseller
  № 3  
Ответить с цитированием
iseller

Регистрация: Nov 2010
Сообщений: 7
Благодарю за ответ
Мне нужно, чтобы при нажатии кнопки выполнялось это действие:

Цитата:
<form id=pay name=pay method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
И соответственно отправлялись эти переменные:

Цитата:
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1.0">
<input type="hidden" name="LMI_PAYMENT_DESC" value="тестовый платеж">
<input type="hidden" name="LMI_PAYMENT_NO" value="1">
<input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
<input type="hidden" name="LMI_SIM_MODE" value="0">
Возвращать во флеш никакие данные не нужно.

Старый 25.11.2010, 12:38
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Я же написал - используйте метод sendAndLoad. HTML код во флеше не будет работать.

Гляньте синтаксис в хелпе.
Вкратце - создаете экземпляр LoadVars, задаете ему переменные, которые есть в форме (LMI_PAYMENT_AMOUNT и т.д, то что name) и их значения (то, что в value), вызываете по нажатию произвольной кнопки скрипт payment.asp с помощью sendAndLoad методом POST.
Это сложнее описать, проще сделать - работы на 5 минут.

Если что-то тут и не получится - это по причине необходимости использования https, а не http.
Для этого надо почитать про метод allowInsecureDomain. Тут я вам не смогу подсказать, не использовал.

Добавлено через 9 минут
Код AS1/AS2:
var slv:LoadVars = new LoadVars();
slv.LMI_PAYMENT_AMOUNT = '1.0';
slv.LMI_PAYMENT_DESC = 'тестовый платеж';
slv.LMI_PAYMENT_NO = '1';
slv.LMI_PAYEE_PURSE = 'Z145179295679';
slv.LMI_SIM_MODE = '0';
 
var rlv:LoadVars = new LoadVars();
rlv.onLoad = function (suc:Boolean) //для получения ответа, что соединение со скриптом состоялось
{
	if (suc)
	{
		trace('отправка удалась'); 
	}
};
 
btn_send.onRelease = function()
{
	slv.sendAndLoad('https://merchant.webmoney.ru/lmi/payment.asp', rlv, 'POST');
};
Кнопочку нарисуйте и задайте ей на сцене имя btn_send.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.11.2010 в 12:52.
Старый 25.11.2010, 13:05
iseller вне форума Посмотреть профиль Отправить личное сообщение для iseller Найти все сообщения от iseller
  № 5  
Ответить с цитированием
iseller

Регистрация: Nov 2010
Сообщений: 7
Пишет, что отправляет)
И еще вопрос - что где дописать, чтобы флеш сначала открывал браузер и в нем уже отправлял эти запросы на сервер?

Старый 25.11.2010, 13:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от iseller Посмотреть сообщение
Пишет, что отправляет)
И еще вопрос - что где дописать, чтобы флеш сначала открывал браузер и в нем уже отправлял эти запросы на сервер?
В контексте начала темы "Нужно вставить во флешку мерчант интерфейс вебмани" вопрос непонятен.
Зачем вам открывание браузера, если вы хотите все из флеша делать?

Если вы хотите, чтобы открывалась ваша HTML страничка с этой формой, просто используйте getURL
Код AS1/AS2:
btn_send.onRelease = function()
{
	getURL('pay.html', '_blank');
};
__________________
Идите первым!

Старый 25.11.2010, 13:57
iseller вне форума Посмотреть профиль Отправить личное сообщение для iseller Найти все сообщения от iseller
  № 7  
Ответить с цитированием
iseller

Регистрация: Nov 2010
Сообщений: 7
Да, запутал я Вас..

На сайте есть флешка, где посетитель выбирает что оплачивать, за сколько, итого после выбора им товара(ов) в флешке остаются переменные – цена, название товара. После этого переменные подставляю в:

Цитата:
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="1.0">
<input type="hidden" name="LMI_PAYMENT_DESC" value="тестовый платеж">
<input type="hidden" name="LMI_PAYMENT_NO" value="1">
<input type="hidden" name="LMI_PAYEE_PURSE" value="Z145179295679">
<input type="hidden" name="LMI_SIM_MODE" value="0">
И отправяю их соответственно на

После этого браузер запрашивает авторизацию кошелька -> авторизация -> оплата товара с параметрами, которые были переданы.

Старый 25.11.2010, 15:12
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Ну напишите php-скрипт, вызов которого происходил бы из флешки с открытием новой страницы и получением из нее введенных данных.
Данные передать ему можно с помощью GET-строки:
Код AS1/AS2:
LMI_PAYMENT_AMOUNT = value1;
LMI_PAYMENT_DESC = value2;
...
btn_send.onRelease = function()
{
	getURL('pay.php?LMI_PAYMENT_AMOUNT=' + value1 + '&LMI_PAYMENT_DESC=' + value2.... ,  '_blank');
};
В pay.php получите эти данные и пусть они будут сразу стоять в скрытых полях выведенной формы.
Кусок pay.php для такого решения:
PHP код:
....
<form id=pay name=pay method="POST" action="https://merchant.webmoney.ru/lmi/payment.asp">
....
<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="<?php echo $_GET['LMI_PAYMENT_AMOUNT'] ?>" />
<input type="hidden" name="LMI_PAYMENT_DESC" value="<?php echo $_GET['LMI_PAYMENT_DESC'] ?>" />
....
<input type="submit" value="submit" />
</form>
.....
То есть юзеру нужно сперва кликнуть кнопку во флеше для подтверждения выбора, а потом, после загрузки страницы, сгенерированной pay.php, останется только кликнуть кнопку на этой странице уже для отправки данных к payment.asp.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.11.2010 в 15:32.
Старый 25.11.2010, 15:29
iseller вне форума Посмотреть профиль Отправить личное сообщение для iseller Найти все сообщения от iseller
  № 9  
Ответить с цитированием
iseller

Регистрация: Nov 2010
Сообщений: 7
Ясно, так еще сложнее) Думал на флеше это все будет реализовать проще..
Буду искать обходные пути.
Благодарю за ответы!

Старый 25.11.2010, 15:34
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Я вам указал обходной путь.
Превращаете pay.html в pay.php и вызываете его по клику из флеша с передачей данных и автоматической их подстановкой в скрытые поля формы.

Добавлено через 3 минуты
Ха, попробуйте более простое решение:
Код AS1/AS2:
var slv:LoadVars = new LoadVars();
slv.LMI_PAYMENT_AMOUNT = '1.0';
slv.LMI_PAYMENT_DESC = 'тестовый платеж';
slv.LMI_PAYMENT_NO = '1';
slv.LMI_PAYEE_PURSE = 'Z145179295679';
slv.LMI_SIM_MODE = '0';
 
 
btn_send.onRelease = function()
{
	slv.send('https://merchant.webmoney.ru/lmi/payment.asp', '_blank', 'POST');
};
send, в отличии от sendAndLoad, загрузит страницу.

Только пробуйте это из опубликованной на странице флешки, а не просто из запущенной swf!
Потому что
Цитата:
The Flash test environment always uses the GET method. To test using the POST method, be sure you are attempting to use it from within a browser.
__________________
Идите первым!


Последний раз редактировалось mooncar; 25.11.2010 в 15:49.
Создать новую тему Ответ Часовой пояс GMT +4, время: 19:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:26.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.