-
Notifications
You must be signed in to change notification settings - Fork 7
Home
breadwild edited this page Jul 31, 2016
·
8 revisions
Webservice::Stripe applied in e-commerce
use WebService::Stripe;
use JSON;
use HTTP::Response;
use Data::Dumper;
my ($obj, $exc);
my $stripe = WebService::Stripe->new(
api_key => 'sk_test_DG8__________________YrWxdP'
);
my $token = eval { $stripe->create_token({
'card[number]' => '4000000000000002', #bad card
#'card[number]' => '4242424242424242', #good card
'card[exp_month]' => 12,
'card[exp_year]' => 2018,
'card[cvc]' => 123
})
};
if ($exc = $@) { #thank you, Naveed
$obj = from_json($exc->content);
print "Token: ".$obj->{'error'}->{'message'}."\n";
} else {
print "Token: success\n";
}
my $charge = eval { $stripe->create_charge({
"amount" => 1000,
"currency" => "usd",
"source" => $token->{'id'}, #access hash for needed id
"description" => "Example charge"
})
};
if ($exc = $@) {
$obj = from_json($exc->content); #returns JSON string
print "Charge: ".$obj->{'error'}->{'message'}."\n";
} else {
print "Charge: success\n";
}
print Dumper($token); #if success
Returns:
Token: success
Charge: Your card was declined.
$VAR1 = {
'client_ip' => '175.456.456.23',
'created' => 1469971634,
'used' => bless( do{\(my $o = 0)}, 'JSON::XS::Boolean' ),
'type' => 'card',
'livemode' => $VAR1->{'used'},
'card' => {
'tokenization_method' => undef,
'address_city' => undef,
'address_line1' => undef,
'address_country' => undef,
'brand' => 'Visa',
'address_line2' => undef,
'address_zip' => undef,
'customer' => undef,
'exp_month' => 12,
'address_zip_check' => undef,
'dynamic_last4' => undef,
'funding' => 'credit',
'cvc_check' => undef,
'last4' => '0002',
'address_state' => undef,
'address_line1_check' => undef,
'name' => undef,
'metadata' => {},
'country' => 'US',
'fingerprint' => 'EZ6FkkogdqK3dj02',
'exp_year' => 2018,
'id' => 'card_18dJyICJ_________pUHPFTay',
'object' => 'card'
},
'object' => 'token',
'id' => 'tok_18dJyIC________aULYPj'
};
Example of JSON string if error:
print Dumper($exc->content);
$VAR1 = '{
"error": {
"message": "Your card was declined.",
"type": "card_error",
"code": "card_declined",
"charge": "ch_18dK8RCJAurfnBjvuiBC8Sn0"
}
}
';
Example of access to success hash:
print $token->{'type'};
card
print $token->{'card'}{'brand'};
Visa