Partial authorizations
authorIvan Kohler <ivan@freeside.biz>
Thu, 5 Nov 2015 18:20:27 +0000 (10:20 -0800)
committerIvan Kohler <ivan@freeside.biz>
Thu, 5 Nov 2015 18:20:27 +0000 (10:20 -0800)
1  2 
OnlinePayment.pm
notes_for_module_writers_v3

Simple merge
@@@ -119,24 -116,9 +120,24 @@@ These are the module writer's notes fo
  
    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.
 +
 +