YAPC::Russia 2009 Использование WebMoney в Perl Александр Лурье
Интерфейсы WebMoney
Идентификаторы в WebMoney
Регистрация в WebMoney Регистрация на  www.webmoney.ru Браузер генерирует ключевую пару WebMoney выпускает сертификат на ваш открытый ключ Сертификат экспортируется из браузера в файл p12
Читаем спецификацию XML-интерфейса http://www.webmoney.ru/rus/developers/interfaces/xml/index.shtml <w3s.request> <reqn></reqn> <wmid></wmid> <sign></sign> <invoice> <orderid></orderid> <customerwmid></customerwmid> <storepurse></storepurse> <amount></amount> <desc></desc> <address></address> <period></period> <expiration></expiration> </invoice> </w3s.request>  <w3s.response> <reqn></reqn> <retval></retval> <retdesc></retdesc> <invoice id=&quot;n1&quot; ts=&quot;n2&quot;> <orderid></orderid> <customerwmid></customerwmid> <storepurse></storepurse> <amount></amount> <desc></desc> <address></address> <period></period> <expiration></expiration> <state>0</state> <datecrt></datecrt> <dateupd></dateupd> </invoice> </w3s.response>
Можно сделать вручную XML::LibXML LWP Не забыть про сертификат WebMoney CA Изучить интерфейсы WebMoney Унылое занятие!
Есть способ проще use Business::WebMoney;
Инициализация use Business::WebMoney; my $wm = Business::WebMoney->new( p12_file => '/path/to/cert.p12', p12_pass => 'secret', );
Посмотрим остатки денег my $res = $wm-> get_balance ( reqn => 1, wmid => '123456789012', ) or die $wm->errstr;
Остатки денег [ { amount => '123.45', pursename => 'R987654321098' desc => 'Моя копилка', id => '16081390', }, ... ] Уау! Это же просто список хешей!
Выставим счёт на оплату my $res = $wm-> invoice ( reqn => $reqn, orderid => 1242447111, customerwmid => '542532589883', storepurse => 'R369676127866', amount => 100, desc => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', ) or die $wm->errstr; Не забудьте про  use utf8 !
Подтверждение от сервера { 'datecrt' => '20090516 08:11:54', 'period' => '0', 'dateupd' => '20090516 08:11:54', 'ts' => '83150332', 'storepurse' => 'R369676127866', 'state' => '0', 'orderid' => '1242447111', 'amount' => '100.00', 'customerwmid' => '542532589883', 'desc' => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', 'expiration' => '0', 'id' => ' 83150332 ', 'address' => '' };
 
Проверим оплату my $res = $wm-> get_out_invoices ( reqn => $reqn, purse => 'R369676127866', datestart => '20090516 08:00:00', datefinish => '20090516 08:20:00', ) or die $wm->errstr;
Возвращается список счетов [ { 'datecrt' => '20090516 08:11:54', 'period' => '0', 'wmtranid' => '0', 'dateupd' => '20090516 08:11:54', 'ts' => '83150332', 'storepurse' => 'R369676127866', 'state' => '0', 'orderid' => '1242447111', 'amount' => '100', 'customerwmid' => '542532589883', 'desc' => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', 'customerpurse' => '', 'expiration' => '0', 'address' => '', 'id' => '83150332' } ];
Состояния оплаты счета 0 — не оплачен 1 — оплачен с протекцией 2 — оплачен полностью 3 — отклонён покупателем
Как принимать платежи
Как перевести деньги my $res = $wm-> transfer ( reqn => $reqn, tranid => $tranid, pursesrc => 'R369676127866', pursedest => 'R736758049958', amount => 100, desc => 'Тестовый перевод', ) or die $wm->errstr;
Как правильно переводить деньги
Безопасность Аутентификация сервера WebMoney Работа по доверенности
Получение доступа к API Часть функций доступна всем Часть — после получения аттестата магазина Часть — по запросу в WebMoney Technical Support
Если пользовались пожалуйста, напишите свой отзыв: Александр Лурье< [email_address] > (и если понравилось, и если не понравилось, и если вопросы возникли)

Использование WebMoney в Perl‎

  • 1.
    YAPC::Russia 2009 ИспользованиеWebMoney в Perl Александр Лурье
  • 2.
  • 3.
  • 4.
    Регистрация в WebMoneyРегистрация на www.webmoney.ru Браузер генерирует ключевую пару WebMoney выпускает сертификат на ваш открытый ключ Сертификат экспортируется из браузера в файл p12
  • 5.
    Читаем спецификацию XML-интерфейсаhttp://www.webmoney.ru/rus/developers/interfaces/xml/index.shtml <w3s.request> <reqn></reqn> <wmid></wmid> <sign></sign> <invoice> <orderid></orderid> <customerwmid></customerwmid> <storepurse></storepurse> <amount></amount> <desc></desc> <address></address> <period></period> <expiration></expiration> </invoice> </w3s.request> <w3s.response> <reqn></reqn> <retval></retval> <retdesc></retdesc> <invoice id=&quot;n1&quot; ts=&quot;n2&quot;> <orderid></orderid> <customerwmid></customerwmid> <storepurse></storepurse> <amount></amount> <desc></desc> <address></address> <period></period> <expiration></expiration> <state>0</state> <datecrt></datecrt> <dateupd></dateupd> </invoice> </w3s.response>
  • 6.
    Можно сделать вручнуюXML::LibXML LWP Не забыть про сертификат WebMoney CA Изучить интерфейсы WebMoney Унылое занятие!
  • 7.
    Есть способ прощеuse Business::WebMoney;
  • 8.
    Инициализация use Business::WebMoney;my $wm = Business::WebMoney->new( p12_file => '/path/to/cert.p12', p12_pass => 'secret', );
  • 9.
    Посмотрим остатки денегmy $res = $wm-> get_balance ( reqn => 1, wmid => '123456789012', ) or die $wm->errstr;
  • 10.
    Остатки денег [{ amount => '123.45', pursename => 'R987654321098' desc => 'Моя копилка', id => '16081390', }, ... ] Уау! Это же просто список хешей!
  • 11.
    Выставим счёт наоплату my $res = $wm-> invoice ( reqn => $reqn, orderid => 1242447111, customerwmid => '542532589883', storepurse => 'R369676127866', amount => 100, desc => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', ) or die $wm->errstr; Не забудьте про use utf8 !
  • 12.
    Подтверждение от сервера{ 'datecrt' => '20090516 08:11:54', 'period' => '0', 'dateupd' => '20090516 08:11:54', 'ts' => '83150332', 'storepurse' => 'R369676127866', 'state' => '0', 'orderid' => '1242447111', 'amount' => '100.00', 'customerwmid' => '542532589883', 'desc' => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', 'expiration' => '0', 'id' => ' 83150332 ', 'address' => '' };
  • 13.
  • 14.
    Проверим оплату my$res = $wm-> get_out_invoices ( reqn => $reqn, purse => 'R369676127866', datestart => '20090516 08:00:00', datefinish => '20090516 08:20:00', ) or die $wm->errstr;
  • 15.
    Возвращается список счетов[ { 'datecrt' => '20090516 08:11:54', 'period' => '0', 'wmtranid' => '0', 'dateupd' => '20090516 08:11:54', 'ts' => '83150332', 'storepurse' => 'R369676127866', 'state' => '0', 'orderid' => '1242447111', 'amount' => '100', 'customerwmid' => '542532589883', 'desc' => 'Слон в отличном состоянии, пробег 16000 км. С доставкой и растаможкой', 'customerpurse' => '', 'expiration' => '0', 'address' => '', 'id' => '83150332' } ];
  • 16.
    Состояния оплаты счета0 — не оплачен 1 — оплачен с протекцией 2 — оплачен полностью 3 — отклонён покупателем
  • 17.
  • 18.
    Как перевести деньгиmy $res = $wm-> transfer ( reqn => $reqn, tranid => $tranid, pursesrc => 'R369676127866', pursedest => 'R736758049958', amount => 100, desc => 'Тестовый перевод', ) or die $wm->errstr;
  • 19.
  • 20.
    Безопасность Аутентификация сервераWebMoney Работа по доверенности
  • 21.
    Получение доступа кAPI Часть функций доступна всем Часть — после получения аттестата магазина Часть — по запросу в WebMoney Technical Support
  • 22.
    Если пользовались пожалуйста,напишите свой отзыв: Александр Лурье< [email_address] > (и если понравилось, и если не понравилось, и если вопросы возникли)