Business-TrueLayer
view release on metacpan or search on metacpan
package Business::TrueLayer;
=head1 NAME
Business::TrueLayer - Perl library for interacting with the TrueLayer v3 API
(https://docs.truelayer.com/)
=head1 VERSION
v0.05
=head1 SYNOPSIS
my $TrueLayer = Business::TrueLayer->new(
# required constructor arguments
client_id => $truelayer_client_id,
client_secret => $truelauer_client_secret,
kid => $truelayer_kid,
private_key => '/path/to/private/key',
# optional constructor arguments (with defaults)
host => 'truelayer.com',
api_host => 'api.truelayer.com',
auth_host => 'auth.truelayer.com',
);
# valid your setup (neither required in live usage):
$TrueLayer->test_signature;
my $access_token = $TrueLayer->access_token;
# create a payment
my $Payment = $TrueLayer->create_payment( $args );
my $link = $Payment->hosted_payment_page_link( $redirect_uri );
# get status of a payment
my $Payment = $TrueLayer->get_payment( $payment_id );
if ( $Payment->settled ) {
...
}
# create a mandate, then create a payment
my $Mandate = $TrueLayer->create_mandate( $args );
if ( $Mandate->authorized ) {
my $Payment = $TrueLayer->create_payment_from_mandate(
$Mandate,$amount_in_minor_units
);
}
=head1 DESCRIPTION
L<Business::TrueLayer> is a client library for interacting with the
TrueLayer v3 API. It implementes the necesary signing and transport logic
to allow you to just focus on just the endpoints you want to call.
The initial version of this distribution supports just those steps that
described at L<https://docs.truelayer.com/docs/quickstart-make-a-payment>
and others will be added as necessary (pull requests also welcome).
=head1 DEBUGGING
Set C<MOJO_CLIENT_DEBUG=1> for user agent and transport debug output.
=cut
use strict;
use warnings;
use feature qw/ signatures postderef /;
use Moose;
extends 'Business::TrueLayer::Request';
no warnings qw/ experimental::signatures experimental::postderef /;
use namespace::autoclean;
use Business::TrueLayer::Authenticator;
use Business::TrueLayer::MerchantAccount;
use Business::TrueLayer::Mandate;
use Business::TrueLayer::Payment;
use Business::TrueLayer::Signer;
use Business::TrueLayer::Types;
use Business::TrueLayer::User;
$Business::TrueLayer::VERSION = '0.05';
=head1 METHODS
=head2 test_signature
Tests if your signature and signing is valid.
$TrueLayer->test_signature;
Returns 1 on success, throws an exception otherwise.
=cut
sub test_signature ( $self ) {
$self->api_post(
'/test-signature',
{ nonce => "9f952b2e-1675-4be8-bb39-6f4343803c2f" },
my $expect_json = 0,
);
return 1;
}
=head2 access_token
Get an access token.
my $access_token = $TrueLayer->access_token;
( run in 0.564 second using v1.01-cache-2.11-cpan-5a3173703d6 )