These are the module writer's notes for v3.  See the regular
"notes_for_module_writers" file first.


- 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.


- Handling failures:

    - If your processor module encounters a setup problem, communication
      error or other problem that's prevents the card from even being
      run, you should die (or croak) with a useful error message.  Setting
      is_success to 0 and returning normally should only be done when the
      transaction *processing* was sucessful (or at least elicited some sort
      of result from the gateway), but the transaction itself returned a
      "normal" decline status of some sort.
      
    - (NEW IN 3.00_04) You should set "failure_status" depending on the
      specific failure result, if (and only if) the failure results from one
      of the defined statuses:

      - "expired"
      - "nsf" (non-sufficient funds / credit limit)
      - "stolen"
      - "pickup"
      - "blacklisted"
      - "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)
      
