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

  • 1,226 views
Uploaded on

YAPC::Russia 2009 "May Perl 2"

YAPC::Russia 2009 "May Perl 2"

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,226
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
9
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. YAPC::Russia 2009 Использование WebMoney в Perl Александр Лурье
  • 2. Интерфейсы WebMoney
  • 3. Идентификаторы в WebMoney
  • 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] > (и если понравилось, и если не понравилось, и если вопросы возникли)