- If your gateway is HTTPS-based, use (or convert to)
Business::OnlinePayment::HTTPS !!
-
- - Business::OnlinePayment::OpenECHO is the first "v3-ish" module, try
- starting from there.
+ Note: The correct thing for modern B:OP: gateway modules that need to
+ speak HTTPS to do is to use Business::OnlinePayment::HTTPS and depend on
+ "Net::HTTPS::Any" (since B:OP itself doesn't).
- Handling failures:
- "inactive" (inactive card or not authorized for card-not-present) (?)
- "decline" (other card/transaction declines only, not other errors)
- You should use code like this so your module can work with B:OP versions
- before 3.00_04:
-
- $self->build_subs('failure_status') unless $self->can('failure_status');
-
- (or add "failure_status" to your build_subs call if you have one during
- initialization)
-
- (NEW IN 3.01) Introspection:
'gateway_url' => 'http://www.example.com/',
'module_version' => $VERSION,
'supported_types' => [ qw( CC ECHECK ) ],
+ 'token_support' => 0, #card storage/tokenization support
+ 'test_transaction' => 0, #set true if ->test_transaction(1) works
+ 'partial_auth' => 1, #can gateway partial auth (new in 3.04)
'supported_actions' => [
'Normal Authorization',
'Authorization Only',
'module_version' => $VERSION,
'module_notes' => 'usage notes',
'supported_types' => [ qw( CC ECHECK ) ],
+ 'token_support' => 1,
+ 'test_transaction' => 1,
'supported_actions' => { 'CC' => [
'Normal Authorization',
'Authorization Only',
],
},
'CC_void_requires_card' => 1,
+ 'ECHECK_void_requires_account' => 1, #routing_code, account_number, name
};
}
value returned from the underlying processing network while "order_number"
is a unique tranaction id generated by the gateway.
+
+- Moo (NEWLY DOCUMENTED IN 3.04)
+
+ Feel free to write gateway modules which use Moo. Please do not require
+ Moo newer than 0.091011 at this time (until 2018 or so).
+
+- Partial authorization (NEW in 3.04)
+
+ If your gateway supports partial authorizations:
+
+ + Indicate this in the introspection _info subroutine (see above)
+ + Accept the partial_auth transaction field:
+ * if not explicitly set, partial authorizations should be reversed/voided
+ and returned as is_success 0
+ * if explicitly set, partial authorizations should return is_success 1
+ and the authorized amount as partial_auth_amount