+ #
+ # Create a charge against the payment profile
+ # with the token set as 'card_number'
+ #
+
+ my %content_ch1 = (
+ %content,
+ action => 'Normal Authorization',
+ card_number => $tr->card_token,
+ amount => '2.95',
+ );
+
+ my ( $tr_ch1, $response_ch1 ) = make_api_request( \%content_ch1 );
+
+ # warn Dumper({
+ # response_ch1 => $response_ch1,
+ # });
+
+ inspect_response(
+ $response_ch1,
+ {
+ amount => $content_ch1{amount},
+ approved => 1,
+ auth_code => 'TEST',
+ authorizing_merchant_id => $content{login},
+ message => 'Approved',
+ payment_method => 'CC',
+ type => 'P',
+ },
+ [qw/
+ card
+ created
+ order_number
+ /],
+ );
+
+
+ #
+ # Create a charge against the payment profile
+ # with the token set as 'card_token'
+ #
+
+ my %content_ch2 = (
+ login => $content{login},
+ password => $content{password},
+ action => 'Normal Authorization',
+ #card_token => '9915559773829941',
+ card_token => $tr->card_token,
+ amount => '7.77',
+ );
+
+ my ( $tr_ch2, $response_ch2 ) = make_api_request( \%content_ch2 );
+
+ # warn Dumper({
+ # response_chs => $response_ch2
+ # });
+
+ inspect_response(
+ $response_ch2,
+ {
+ amount => $content_ch2{amount},
+ approved => 1,
+ auth_code => 'TEST',
+ authorizing_merchant_id => $content{login},
+ message => 'Approved',
+ payment_method => 'CC',
+ type => 'P',
+ },
+ [qw/
+ card
+ created
+ order_number
+ /],
+ );
+
+ #
+ # Attempt charge with a normal credit card number as card_token
+ # Expect fail
+ #
+
+ my %content_fail = (
+ %content_ch2,
+ card_token => '4242424242424242',
+ amount => '24.95',
+ );
+
+ my ( $tr_fail, $response_fail ) = make_api_request( \%content_fail );
+
+ inspect_transaction(
+ $tr_fail,
+ { is_success => 0 },
+ [qw/ error_message /],
+ );
+