SlideShare una empresa de Scribd logo
1 de 22
YAPC::Russia 2009 Использование WebMoney в Perl Александр Лурье
Интерфейсы WebMoney
Идентификаторы в WebMoney
Регистрация в WebMoney ,[object Object],[object Object],[object Object],[object Object]
Читаем спецификацию 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>
Можно сделать вручную ,[object Object],[object Object],[object Object],[object Object],Унылое занятие!
Есть способ проще 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;
Как правильно переводить деньги
Безопасность ,[object Object],[object Object]
Получение доступа к API ,[object Object],[object Object],[object Object]
Если пользовались пожалуйста, напишите свой отзыв: Александр Лурье< [email_address] > (и если понравилось, и если не понравилось, и если вопросы возникли)

Más contenido relacionado

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

SP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev RuSP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev Ru
Ivan Padabed
 
Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)
proft
 
Mobile Applications With Geo Google API
Mobile Applications With Geo Google APIMobile Applications With Geo Google API
Mobile Applications With Geo Google API
sshpack
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
Media Gorod
 
семинар I context
семинар I contextсеминар I context
семинар I context
SEMonline .Ru
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
drupalconf
 
Zen Coding
Zen CodingZen Coding
Zen Coding
404fest
 

Similar a Использование WebMoney в Perl‎ (13)

SP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev RuSP2010 for ASP.NET dev Ru
SP2010 for ASP.NET dev Ru
 
Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)Работа с платежными системами в Django (Paypal, WebMoney)
Работа с платежными системами в Django (Paypal, WebMoney)
 
Ci
CiCi
Ci
 
Mobile Applications With Geo Google API
Mobile Applications With Geo Google APIMobile Applications With Geo Google API
Mobile Applications With Geo Google API
 
Js Http Request дмитрий котеров
Js Http Request   дмитрий котеровJs Http Request   дмитрий котеров
Js Http Request дмитрий котеров
 
Perl in practice
Perl in practicePerl in practice
Perl in practice
 
Уведомление о внесении изменений в стоимость SSL-сертификатов
Уведомление о внесении изменений в стоимость SSL-сертификатовУведомление о внесении изменений в стоимость SSL-сертификатов
Уведомление о внесении изменений в стоимость SSL-сертификатов
 
Vormid
VormidVormid
Vormid
 
семинар I context
семинар I contextсеминар I context
семинар I context
 
5 лет Агентству экономического развития Тольятти
5 лет Агентству экономического развития Тольятти5 лет Агентству экономического развития Тольятти
5 лет Агентству экономического развития Тольятти
 
Kaardikeskus
KaardikeskusKaardikeskus
Kaardikeskus
 
Ubercart -nemnogo_primerov_iz_zhizni
Ubercart  -nemnogo_primerov_iz_zhizniUbercart  -nemnogo_primerov_iz_zhizni
Ubercart -nemnogo_primerov_iz_zhizni
 
Zen Coding
Zen CodingZen Coding
Zen Coding
 

Más de mayperl

Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
mayperl
 
Сравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на PerlСравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на Perl
mayperl
 
Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !
mayperl
 
Распределенная обработка потоковых данных
Распределенная обработка потоковых данныхРаспределенная обработка потоковых данных
Распределенная обработка потоковых данных
mayperl
 
Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎
mayperl
 
10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор
mayperl
 

Más de mayperl (15)

‎Тестирование в проекте REG.RU‎
‎Тестирование в проекте REG.RU‎‎Тестирование в проекте REG.RU‎
‎Тестирование в проекте REG.RU‎
 
Browser sniffing в 21 веке‎
Browser sniffing в 21 веке‎Browser sniffing в 21 веке‎
Browser sniffing в 21 веке‎
 
Что будет с Перлом?
Что будет с Перлом?Что будет с Перлом?
Что будет с Перлом?
 
Вебклуб Perlgolf.ru
Вебклуб Perlgolf.ruВебклуб Perlgolf.ru
Вебклуб Perlgolf.ru
 
Perl в хэке и хэки в Perl
Perl в хэке и хэки в PerlPerl в хэке и хэки в Perl
Perl в хэке и хэки в Perl
 
Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎Работа с большими файлами под перлом‎
Работа с большими файлами под перлом‎
 
Сравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на PerlСравнение работы алгоритмов сортировки, реализованных на Perl
Сравнение работы алгоритмов сортировки, реализованных на Perl
 
Курс Perl в УрГУ
Курс Perl в УрГУКурс Perl в УрГУ
Курс Perl в УрГУ
 
Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !Ведение документации в perl6: POD, да не тот !
Ведение документации в perl6: POD, да не тот !
 
Making Your Own CPAN
Making Your Own CPANMaking Your Own CPAN
Making Your Own CPAN
 
Распределенная обработка потоковых данных
Распределенная обработка потоковых данныхРаспределенная обработка потоковых данных
Распределенная обработка потоковых данных
 
Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎Упаковка и развертывание программ на perl под debian‎
Упаковка и развертывание программ на perl под debian‎
 
Groovy Vs Perl
Groovy Vs PerlGroovy Vs Perl
Groovy Vs Perl
 
Написание DSL в Perl
Написание DSL в PerlНаписание DSL в Perl
Написание DSL в Perl
 
10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор10.000 вариантов снять квартиру или сам себе POE-риелтор
10.000 вариантов снять квартиру или сам себе POE-риелтор
 

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

  • 1. YAPC::Russia 2009 Использование WebMoney в Perl Александр Лурье
  • 4.
  • 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.
  • 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 — отклонён покупателем
  • 18. Как перевести деньги my $res = $wm-> transfer ( reqn => $reqn, tranid => $tranid, pursesrc => 'R369676127866', pursedest => 'R736758049958', amount => 100, desc => 'Тестовый перевод', ) or die $wm->errstr;
  • 20.
  • 21.
  • 22. Если пользовались пожалуйста, напишите свой отзыв: Александр Лурье< [email_address] > (и если понравилось, и если не понравилось, и если вопросы возникли)