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;