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
+ - Declare this in your "sub _info" introspection subroutine:
+ 'partial_auth' => 1,
+
+ - Add "partial_auth_amount to your build_subs call in set_defaults, or add
+ one:
+ $self->build_subs('partial_auth_amount');
+
+ - Honor the transaction 'partial_auth' flag as follows:
+ + If this transaction flag is unset, the application is not expecting to
+ handle a partial authorzation. So, either set the gateway flag disabling
+ partial authorizations, or (if your gatweay does not have such a
+ setting), immediately void any partial authorization received and
+ return is_success 0.
+ + If this transaction flag is set, the application can handle a partial
+ authorization. Make sure the flag to enable them is passed to the
- gateway, if necessary. When a partial authorization is received, the
- amount must be returned as "partial_auth_amount":
++ gateway, if necessary. When a partial authorization is received, return
++ is_success 1, and the amount as "partial_auth_amount":
+ $self->partial_auth_amount( $partial_amount );
+ For normal full authorizations, "partial_auth_amount" must not be set.
+
+