Автоматический прием денег в e-gold с помощью SCI

 
Новости
Главное меню
Главная
Новости
Заработок без сайта
Заработок на сайте
Статьи
Задать вопрос
Контакты
Обучение
Карта сайта
Гостевая книга
Опросы
Вопрос-ответ
 
Как выиграть в интернет-казино?

Не всегда получается выиграть в интернет казино, и это факт. Но как же быть игрокам, которые приходят в такие заведения не с целью развлечения, а для заработка?  Риск присутствует всегда, и нет 100-процентной гарантии выигрыша. Однако существуют интернет-казино, где есть возможности заработать деньги почти без вложений.

Например, казино AzartPlay. Именно здесь постоянно организовываются турниры и розыгрыши джекпотов. В большинстве из них, независимо от выигрыша или проигрыша игрока, начисляются фишки или баллы. Так, являясь активным игроком, можно всегда получить дополнительную прибыль! Но самое главное, это еженедельная лотерея, где можно сделав ставку всего лишь 1 цент выиграть 5$ бонусом и наиграть потом на эти деньги приличную сумму. Казино рискует, привлекая новых игроков, но без риска в этом бизнесе не обойтись.

Главная

Автоматический прием денег в e-gold с помощью SCI

18.10.2006 г.
Источник: Sb-money.ru
Автоматический ввод денег на внутренний счет или оплата товара, является важной частью систем электронной коммерции, САР, казино и т.п. В статье рассмотрены особенности ввода денег в системе e-gold с использованием ее сервиса SCI. Приведены детальные примеры создания html форм и php кода.

  • Введение
  • Ссылки для быстрой оплаты в E-Gold
  • Простая форма приема платежей E-Gold
  • Основные этапы автоматического приема e-gold
  • Форма для ввода суммы платежа и формирования заказа
  • Форма запроса платежа и отправки его e-gold SCI
  • Обработка оповещения о платеже
  • Обработка выполненного или невыполненного платежа Введение

    Существенным преимуществом 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://1809702.e-gold.com - окно перевода без суммы на счет 1809702
    • http://1809702-USD0.02.e-gold.com - перевод 2 центов e-gold
    • http://1809702-USD2.e-gold.com - перевод $2 e-gold
    • http://1809702-USD1.03-Silver.e-gold.com - перевод $1.03 e-silver
    • http://1809702-USD5-Palladium.e-gold.com - перевод $5 e-palladium

    Хороший пример приведен на официальном сайте (для его работы должен быть включен Java Script):

    Пример приема оплаты в e-gold по ссылкам через SCI
    Заполните поля формы (поставьте номер своего счета, сумму и т.п.), для генерации ссылки оплаты e-gold.
    Номер счета e-gold: Сумма в валюте: Тип металла:

    Полученные ссылки, скопируйте и вставьте на своем сайте:
    или используйте графическую кнопку:


    Показать полученные ссылки в всплывающем окне...


    При использовании этого SCI метода с ссылками, вы автоматически будете получать уведомление на email, каждый раз при получении платежей. Проверить подлинность отправителя писем можно на странице MD5 Hash Checker page, (или зайти в свой счет и проверить историю полученных платежей
    Пользователь будет направлен обратно на ваш сайт, после нажатия кнопок "Continue" или "Cancel" на странице приема платежей e-gold.

    Простая форма приема платежей 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="1809702">
    <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 формы, для отправки платежа и для вывода сообщений о удачном или неудачном завершении.

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

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

    Валюта:
    Платежная система:
    Сумма: разделитель "."
    Примечание:
    <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. В случае успешного перевода, деньги автоматически зачислятся на Ваш счет в системе SB-MONEY.RU. Если деньги будут перечислены, но произойдет ошибка, то они будут зачислены вручную в течении 24 часов.
    <FORM action="https://www.e-gold.com/sci_asp/payments.asp" method="post">
    <input type="hidden" name="PAYEE_ACCOUNT" value="1809702">
    <input type="hidden" name="PAYEE_NAME" value="SB-MONEY.RU">
    <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://sb-money.ru/user_cash_res.php">
    <input type="hidden" name="PAYMENT_URL" value="http://sb-money.ru/user_cash_res.php?compl">
    <INPUT type="hidden" name="PAYMENT_URL_METHOD" value="POST">
    <input type="hidden" name="NOPAYMENT_URL" value="http://sb-money.ru/user_cash_res.php?err">
    <INPUT type="hidden" name="NOPAYMENT_URL_METHOD" value="POST">
    <input type="hidden" name="SUGGESTED_MEMO" value="Transfer into SB-MONEY.RU">
    <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 делают ее очень привлекательной для автоматического приема платежей.


  •  
    Случайная статья
    Популярное
     


    2006-2011, http://mdearn.org/