Revision 525 (by ahitrov, 2015/11/24 12:45:58) |
Payture, the beginning
|
package payments::Provider::PayTure;
use strict;
use warnings 'all';
use base 'payments::Provider::Base';
use Contenido::Globals;
use payments::Keeper;
use Digest::MD5;
use Data::Dumper;
use URI;
use URI::QueryParam;
our $init_url = '';
sub new {
my ($proto, %params) = @_;
my $class = ref($proto) || $proto;
my $self = {};
my $prefix = $class =~ /\:\:(\w+)$/ ? lc($1) : undef;
return unless $prefix;
$self->{payment_system} = $prefix;
$self->{app_id} = $state->{payments}->{$prefix."_app_id"};
$self->{secret} = $state->{payments}->{$prefix."_app_secret"};
$self->{currency} = $state->{payments}->{$prefix."_currency_code"};
$self->{test_mode} = $state->{payments}->{$prefix."_test_mode"};
$self->{api}{init} = 'https://sandbox.payture.com/apim/Init';
bless $self, $class;
return $self;
}
sub init {
my $self = shift;
my (%opts) = @_;
my $session_type = delete $opts{session_type} || 'Pay'; ### 'Pay' or 'Block'
my $order_id = delete $opts{order_id} || return 0;
### Сумма копейках. Если дробное - преобразуем
my $sum = delete $opts{sum} || return 0;
if ( $sum =~ /[\.\,]/ ) {
$sum =~ s/\,/\./;
$sum = int($sum * 100);
}
my $ip = delete $opts{ip} || return 0;
my $url = delete $opts{url};
my $template = delete $opts{teplate};
my $lang = delete $opts{lang};
my $params = delete $opts{params};
my $ua = LWP::UserAgent->new;
my $req = URI->new( $self->{api}{init} );
$req->query_param( Key => $self->id );
my @data = ( "SessionType=$session_type", "OrderId=$order_id", "Amount=$sum", "IP=$ip");
push @data, "Url=$url" if $url;
push @data, "TemplateTag=$template" if $template;
push @data, "Url=$url" if $url;
push @data, "Language=$lang" if $lang;
if ( ref $params eq 'HASH' ) {
while ( my ($param, $val) = each %$params ) {
}
}
}
1;