summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Prykop <jonathan@freeside.biz>2015-03-31 13:41:58 -0500
committerJonathan Prykop <jonathan@freeside.biz>2015-03-31 13:41:58 -0500
commit9160ffe22e8afe191e0192fbff8f6a7b2b236f46 (patch)
tree975b388da950417719110b9d7b8996df794b4506
parentca648e1ba593d759c74c062bf4056f7932982079 (diff)
Added processor_id functionality
-rw-r--r--BatchPayment.pm9
-rw-r--r--BatchPayment/Batch.pm12
-rw-r--r--BatchPayment/Processor.pm8
3 files changed, 27 insertions, 2 deletions
diff --git a/BatchPayment.pm b/BatchPayment.pm
index abc2a83..8f4eaac 100644
--- a/BatchPayment.pm
+++ b/BatchPayment.pm
@@ -55,6 +55,15 @@ our $VERSION = '0.02_01';
... process items and record successful/failed payments
}
+ # if your processor uses processor_id...
+
+ $processor->submit(@request);
+ foreach (@request) {
+ ... record process_id for that request
+ }
+ # later...
+ my @reply = $processor->receive(@process_ids);
+
=head1 CLASS METHODS
=over 4
diff --git a/BatchPayment/Batch.pm b/BatchPayment/Batch.pm
index b05eb80..e5dd22f 100644
--- a/BatchPayment/Batch.pm
+++ b/BatchPayment/Batch.pm
@@ -37,6 +37,12 @@ If your processor uses C<format_header> and C<format_item>, this will
be set to 0 by C<format_header> and incremented every time C<format_item>
is called. Convenient for formats that require record numbers.
+=item processor_id
+
+Processor-specific value to be set by the processor during submit and
+passed to receive, useful for processors that require their own identifiers
+for download.
+
=back
=head1 METHODS
@@ -69,6 +75,12 @@ has batch_id => (
default => '',
);
+has processor_id => (
+ is => 'rw',
+ isa => 'Str',
+ default => '',
+);
+
has items => (
traits => ['Array'],
is => 'rw',
diff --git a/BatchPayment/Processor.pm b/BatchPayment/Processor.pm
index a148c16..3cb88c6 100644
--- a/BatchPayment/Processor.pm
+++ b/BatchPayment/Processor.pm
@@ -97,14 +97,18 @@ Specifying only 'input' will direct 'output' to /dev/null, and vice versa.
=item submit BATCH
Send a batch of requests to the gateway. BATCH must be a
-L<Business::BatchPayment::Batch>.
+L<Business::BatchPayment::Batch>. No defined return value,
+but processors may optionally set the 'processor_id' field
+on the input batch, which should then be stored and passed
+to receive.
=item receive
Download/otherwise acquire the available confirmed transactions from the
gateway, parse them, and return a list of L<Business::BatchPayment::Batch>
objects. The items in these batches will have, at minimum, the 'approved'
-field and either the 'tid' or 'amount' field set.
+field and either the 'tid' or 'amount' field set. Accepts an optional
+list of processor_id strings, if required by your processor.
=item format_request BATCH