InetBest
Понедельник, 25.11.2024, 21:32
Приветствую Вас Гость | RSS
 
Главная Стань лучшимРегистрацияВход
Меню сайта

Категории каталога
Платежные системы [18]
Электронные платежные системы используемые в сети Интернет
Заработок на своем сайте [24]
О том как легко сделать свой сайт и превратить его в стабильный источник дохода
Форекс и инвестиции [3]
Советы, идеи, стратегии работы на рынке Форекс
Обыграй букмекера [17]
Стратегии ставок в букмекерских конторах, лучшие букмекерские конторы
Начальный заработок [12]
Различные виды небольшого заработка с помощью Интернета
Реклама
Главная » Статьи » Заработок в Интернете » Платежные системы

Прием платежей в E-Gold

Существенным преимуществом e-gold является отсутствие аттестации участников и связанных с ними ограничений на операции. Таким образом, открыв e-gold счет, можно сразу пользоваться всеми возможностями системы по автоматизации приема платежей.

e-gold предлагает два интерфейса для программистов:

  • e-gold Shopping Cart Interface (SCI) - дает возможность принимать платежи, в том числе и автоматически. Именно этот интерфейс используется в большинстве случаев и будет рассматриваться в этой статье.
  • e-gold Automation Interface - данные методы позволяют программистам выполнять любые действия со счетом e-gold: перевод средств, просмотр баланса и истории платежей, баланса по счету...) из своих программ.

Два интерфейса аналогичны применяемым в WebMoney Merhant (для приема платежей) и WM HTTPS-interface (позволяет получать информацию о счетах и автоматически выплачивать деньги). В большинстве случаев (магазины, прием оплаты за услуги, САР системы и т.п.) наиболее актуален прием платежей. Также нужно учитывать, что использование автоматического вывода денег (Automation Interface) требует значительного снижения настроек безопасности счета и хранения пароля на сервере. Поэтому чаще всего ввод осуществляется в автоматическом режиме, а вывод в ручном.

Ссылки для быстрой оплаты в e-gold

В самом простом случае покупателю открывается заполненное окно платежа e-gold, с подставленными значениями суммы, валюты, получателя и т.п., а автоматическая обработка не производится. Это единственный вариант, если ваш хостинг не поддерживает серверных языков программирования (в наличии только html).

Наиболеее простой метод заключается в создании специальной ссылки, содержащий все данные, вот несколько примеров:

  • http://1104931.e-gold.com - окно перевода без суммы на счет 1104931
  • http://1104931-USD0.02.e-gold.com - перевод 2 центов e-gold
  • http://1104931-USD2.e-gold.com - перевод $2 e-gold
  • http://1104931-USD1.03-Silver.e-gold.com - перевод $1.03 e-silver
  • http://1104931-USD5-Palladium.e-gold.com - перевод $5 e-palladium

Простая форма приема платежей e-gold

Если вы нуждайтесь в большем количестве вариантов, чем метод ссылок, то в нижеприведенной HTML форме, настройте параметры, выделенные красным цветом. Пример взят с сайта e-gold.

<form action="https://www.e-gold.com/sci_asp/payments.asp" method="POST" target=_top>
<div align="center">
<input type="hidden" name="PAYEE_ACCOUNT" value="1104931">
<input type="hidden" name="PAYEE_NAME" value="Название организации">
Введите сумму оплаты:<br>
<input type=text name="PAYMENT_AMOUNT" size=4>
<input type=hidden name="PAYMENT_UNITS" value=1>
USD worth of e-gold
<input type=hidden name="PAYMENT_METAL_ID" value=1>
<input type="hidden" name="STATUS_URL" value="mailto:YourEmailAddress@YourDomain">
<input type="hidden" name="NOPAYMENT_URL"
value="ссылка на страницу с сообщением о ошибке/отказе от оплаты">
<input type="hidden" name="NOPAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="PAYMENT_URL"
value="ссылка на страницу успешной оплаты">
<input type="hidden" name="PAYMENT_URL_METHOD" value="LINK">
<input type="hidden" name="BAGGAGE_FIELDS" value="CUSTOMERID">
<input type="hidden" name="CUSTOMERID" value="0">
<input type="hidden" name="SUGGESTED_MEMO" value='Примечание к платежу'>
<br>
<input type="submit" name="PAYMENT_METHOD" value="Оплатить сейчас">
</div></form>
Подробное описание параметров формы можно найти на официальном сайте, также они будут рассмотрены далее в статье. Наиболее важные из них:
  • PAYEE_ACCOUNT - счет получателя платежа;
  • PAYMENT_AMOUNT - сумма платежа в выбранной валюте/металле;
  • PAYMENT_UNITS - валюта, эквивалент металла которой переводится, как правило, имеет значение 1 = USD;
  • PAYMENT_METAL_ID - металл, которой реально переводится, как правило, имеет значение 1 = Gold;
  • STATUS_URL - в этом примере, email адрес, на который будет высылаться уведомление о платеже, может задаваться http или https страница сайта, которой будут переданы параметры для проверки платежа;
  • SUGGESTED_MEMO - примечание платежа, если его не заполнять, то у покупателя будет возможность ввести текст самостоятельно.

Основные этапы автоматического приема e-gold

Если вы уже сталкивались с интерфейсами других платежных систем (например, WebMoney), то найдете много общего, поэтому последующее изложение материала по своей структуре сильно похоже на схожую статью о WebMoney. Можно сказать, что e-gold предлагает предельно простой вариант, без различных дополнительных возможностей (например, WebMoney имеет тестовые платежи и форму предварительного запроса).

Вот основные шаги, которые потребуется реализовать:

  • задать на сайте e-gold специальный пароль для приема платежей (Alternate password) и получить его md5-код;
  • Форма для ввода суммы платежа и формирования заказа - служит для фиксации заказа в базе данных, который будет использоваться для проверки платежа и зачисления денег покупателю на его внутренний счет;
  • Форма запроса платежа и отправки его SCI - генерируется веб-сайтом продавца для формирования запроса на проведение платежа в сервисе SCI и передачи его через веб-браузер покупателя;
  • Обработка оповещения о платеже - генерируется сервисом e-gold SCI для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя;
  • Обработка выполненного или невыполненного платежа - генерируется сервисом e-gold SCI в случае успешного (неуспешного) выполнения платежа и передается на веб-сайт продавца через веб-браузер покупателя.

Обратите внимание, что вам нужно будет реализовать только две html формы для ввода суммы и для запроса платежа и отправки в e-gold SCI. В остальных случаях будет вызываться ваша специальная страница, в которую методами GET или POST будут передаваться параметры платежа, указанные на сайте e-gold.

Удобно использовать одну динамическую страницу, которая по переданным ей параметрам будет определять, что именно от нее требуется. Если же Ваш хостинг не поддерживает серверных скриптов (php, perl, asp и т.п.), то зачисление денег сделать будет нельзя. Надо будет реализовать, как показано в простом примере на сайте e-gold 3 html формы, для отправки платежа и для вывода сообщений о удачном или неудачном завершении.

Форма для ввода суммы платежа и формирования заказа

Это обычная форма, которая может выглядеть следующим образом:

Валюта:USDRUR
Платежная система:WebMoneye-gold
Сумма:разделитель "."
Примечание: 
  
<FORM action=Ваш_скрипт.php method=post> 
<TABLE width=500 align=center border=0> 
<TD>Валюта:</TD> 
<TD><SELECT size=1 name=CurrencyId>
<OPTION value=1 selected>USD</OPTION>
 <OPTION value=2>RUR</OPTION></SELECT></TD></TR>
 <TR> <TD>Платежная система:</TD> <TD><SELECT size=1 name=mk>
<OPTION value=1 selected>WebMoney</OPTION> 
<OPTION value=2>e-gold</OPTION></SELECT></TD> </TR> <TR> <TD>Сумма:</TD>
 <TD><INPUT maxLength=6 size=10 value=0 name=Sum>  разделитель "."</TD></TR>
 <TR> <TD>Примечание:</TD> <TD><INPUT maxLength=100 size=50  name=Note></TD></TR>
 <TR> <TD></TD> <TD><INPUT type=submit  value=Выполнить name=Submit></TD></TR> 
 </TABLE> </FORM> 

Как вы видите, в этой универсальной форме предусмотрен выбор платежной системы, валюты, суммы и назначения платежа. В своем скрипте следует сохранить в базу данных или текстовый файл все эти данные и сгенерировать уникальный идентификатор платежа (PayID), по которому далее будет выполняться проверка. Если выбрана платежная система e-gold, то нужно показать форму запроса платежа.

Форма запроса платежа и отправки его e-gold SCI

Эта форма должна генерироваться скриптом из предыдущего раздела, ее поля подробно описаны в инструкции SCI. И она может выглядеть следующим образом:
Оплатить в e-gold
Cумма:0.55
  
После нажатия кнопки Выполнить, перед Вами откроется стандартное окно выполнения переводов e-gold. В случае успешного перевода, деньги автоматически зачислятся на Ваш счет в InetBest. Если деньги будут перечислены, но произойдет ошибка, то они будут зачислены вручную в течении 24 часов.
<FORM action="https://www.e-gold.com/sci_asp/payments.asp" method="post"> 
<input type="hidden" name="PAYEE_ACCOUNT" value="1104931"> 
<input type="hidden" name="PAYEE_NAME" value="InetBest"> 
<input type="hidden" name="PAYMENT_AMOUNT" value="0.55"> 
><input type="hidden" name="PAYMENT_UNITS" value="1"> 
<input type="hidden" name="PAYMENT_METAL_ID" value="1">
 <input type="hidden" name="PAYMENT_ID" value="433">
 <input type="hidden" name="STATUS_URL"  value="http://inetbest.com/user_cash_res.php">
 <input type="hidden" name="PAYMENT_URL"  value="http://inetbest.com/user_cash_res.php?compl"> 
<INPUT type="hidden" name="PAYMENT_URL_METHOD" value="POST"> 
<input type="hidden" name="NOPAYMENT_URL"  value="http://inetbest.com/user_cash_res.php?err"> 
<INPUT type="hidden" name="NOPAYMENT_URL_METHOD" value="POST"> 
<input type="hidden" name="SUGGESTED_MEMO"  value="Transfer into InetBest"> 
<input type="hidden" name="BAGGAGE_FIELDS" value=""> </FORM> 

В данном примере значение суммы, назначение платежа, PAYMENT_ID (433) генерируются автоматически в предыдущей форме. Естественно эту форму можно подделать и передать e-gold другие параметры, поэтому на последующих этапах будет проводить проверка. На этом этапе проверку сделать нельзя т.к. управление из этой форму передается SCI.

При генерации основания платежа SUGGESTED_MEMO, старайтесь включать в него необходимые для идентификации покупателя данные.

Как вы видите здесь явно передается url страниц с сообщениями о результатах платежа (PAYMENT_URL, NOPAYMENT_URL) и подтверждения платежа (STATUS_URL). По умолчанию используется передача параметров методом POST и его можно явно не указывать.

Номера платежа (PAYMENT_ID) и сохраненной в базе данных продавца информации достаточно для идентификации оплаты и надежной защиты от взлома. Дополнительные поля несут косметическую цель и не их использование не требуется в практических задачах.

Неудобно, что при отсутствии пользовательских полей все равно нужно передавать пустой параметр BAGGAGE_FIELDS. Во многих скриптах в этом поле передается id участника.

Обработка оповещения о платеже

Оповещение отправляется e-gold SCI сайту продавца (страница STATUS_URL) без участия браузера клиента, после выполнения платежа. Необходимо проверить правильность выполнения платежа и при его корректности зачислить деньги на внутренний счет или, например, отправить оплаченный товар почтой. Если сайт продавца будет недоступен, то сообщение отправляется повторно через некоторый интервал времени. В качестве страницы получающей уведомление могут указываться только "mailto:", "http://", and "https://" - нестандартные порты не поддерживаются.

Проверить, является ли вызов предварительным можно по параметру V2_HASH, который передается только в форме оповещения:

if (isset($_POST['V2_HASH'])){  
 //ваши действия по проверке платежа, при ошибки просто выходим по exit  
 //...   
 //если не было ошибок, зачисляем деньги или отправляем товар   //... } 
Нужно проверять следующие данные, полученные через "Форму оповещения о платеже":
  1. Проверить, действительно ли данные переданы от сервиса e-gold SCI (Проверка источника данных)
  2. Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных)
  3. Проверить сумму платежа
  4. Проверить кошелек продавца
  5. Проверить не выполнялся ли платеж ранее
  6. Проверьте время платежа
Большая часть этих проверок достаточна проста в реализации. Проверка корректности ключа выполняется следующим образом:
//константе EG_ALTERNATE - присвойте значение вашего  Alternate пароля 
 $PAYEE_ACCOUNT = isset($_POST['PAYEE_ACCOUNT'])  ? 
(string)$_POST['PAYEE_ACCOUNT'] : ''; 
//загружаем остальные параметры аналогичным образом 
 $code = md5($PAYMENT_ID.':'.$PAYEE_ACCOUNT.':' 
.$PAYMENT_AMOUNT.':'.$PAYMENT_UNITS.':'.   
$PAYMENT_METAL_ID.':'.$PAYMENT_BATCH_NUM.':'.$PAYER_ACCOUNT.':'.  
 strtoupper(md5(EG_ALTERNATE)).':'.$ACTUAL_PAYMENT_OUNCES.':'.  
 $USD_PER_OUNCE.':'.$FEEWEIGHT.':'.$TIMESTAMPGMT); 
if ($code != strtolower($V2_HASH)){ 
  exit; //неверный хеш-код } 

Обязательно проверьте валюту, в эквиваленте которой вам перевели сумму (PAYMENT_AMOUNT).

Обратите внимание на двойное использование strtolower. Дело в том, что md5 в php (и ее аналог в perl), возвращают текст в нижнем регистре, а SCI (как и WebMoney Merhant) возвращает хэш код в верхнем регистре.

 

Безопасность обеспечивается передачей хэш кода, в котором принимает участие md5 секретного ключа. Обязательно используйте секретный ключ максимальной длины. Особенное внимание надо обратить внимание на файл, в котором хранится константа с ключом. Лучше всего его держать за пределами расшаренной папки public_html (или просто html) и выставить на него соответствующие права доступа.

 

Проверку сайта e-gold рекомендует выполнять по ip адресу - 63.240.230.x

Время платежа можно проверить по полю TIMESTAMPGMT. Нужно поставить два ограничения: не принимать платежи из будущего и разумно ограничить прошедшие платежи, например, сроком в 1 день.

Для отслеживания попыток атаки, желательно протоколировать ошибки в файле на хостинге, который регулярно просматривать. Можно сразу посылать письмо, но при большом количестве транзакций это не эффективно. Также желательно фиксировать факт предварительного вызова и при обработке оповещения проверять был ли предварительный вызов.

 

Интересной особенностью является то, что STATUS_URL передаются только POST параметры, если вы зададите параметры в адресе, то они будут отброшены платежной системой.

Достаточно интересным вопросом является учет (вычет) комисии, которая берется в продавца (получателя средств). Во многих случаях ею пренебрегают, хотя для небольших платежей она достигает до 40% от суммы перевода. Вот пример расчета реально полученной суммы (с вычетом комиссии), округленной до центов:

  $ACTUAL_AMOUNT = floor(100 * ((float)$USD_PER_OUNCE) *    
  ((float)$ACTUAL_PAYMENT_OUNCES - (float)$FEEWEIGHT)) / 100; 

Обработка выполненного или невыполненного платежа

Удобно использовать ту же страницу для этих целей. Тип вызова может определяться по значению переданного GET параметра res. Здесь обычно просто выводится сообщение пользователю о завершении операции. Можно также выдать ее детали, которые можно извлечь из полученных POST параметров.

Нередко здесь сразу показывается страница с балансом счета пользователя или через некоторое время происходит автоматический редирект на нее.

У e-gold нет режима тестирования приема переводов, для отладки следует выполнять переводы со своего счета на свой же счет минимальными суммами (например, $0.01).

В заключение отмечу, что все это достаточно просто в реализации, а отсутствие особых требований и аттестации со стороны платежной системы e-gold делают ее очень привлекательной для автоматического приема платежей.

Категория: Платежные системы | Добавил: rupor (19.01.2009)
Просмотров: 666 | Рейтинг: 0.0/0 |
Духи с феромонами
Всего комментариев: 0
Форма входа
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Rambler's Top100 Бесплатный Онлайн Сервис

Copyright MyCorp © 2024
Сайт управляется системой uCoz