Business-OnlinePayment-WorldPay version 1.00
============================================

This module subclasses Business::OnlinePayment to provide a basic merchant
processing interface for submitting transactions as XML requests in the
direct model provided by RBS WorldPay.

    http://www.rbsworldpay.com
    http://www.rbsworldpay.com/support/bg/xml/kb/submittingtransactionsdirect/dxml.html

Orders submitted to the RBS WorldPay system are required to be valid XML
files as specified in their Document Type Definition (DTD):

    http://dtd.wp3.rbsworldpay.com/paymentService_v1.dtd


OVERVIEW

General procedure for use of the Business::OnlinePayment::WorldPay module:

1) create a Business::OnlinePayment object with "WorldPay" as parameter to contructor.
   This returns a Business::OnlinePayment::WorldPay object.

2) invoke the content method with one of the following actions:
    * payment
    * status
    * cancel
    * refund
    * cancel_or_refund (undocumented)
    Additional parameters are required; varies depending on the action.

3) invoke the submit method, in which most of the action occurs:
    * initializes object
    * creates variables for filling in to a template of an XML request
    * selects the appropriate XML template and processes it to fill in needed values
    * uses post_https to submit the request and obtain the response
    * examines response headers to verify request was successful
    * uses XML::TreeBuilder to parse the body of the response
      (XML response varies in structure depending on the type of request)
    * extracts needed status and/or error information from the TreeBuilder object
      and stores in the Business::OnlinePayment::WorldPay object

4) query the Business::OnlinePayment::WorldPay object to determine whether
   the request was successful and to retrieve other status information
   and/or error messages.

See the test programs in the t/ directory of this distribution for examples.


INSTALLATION

To install this module type the following:

    perl Makefile.PL
    make
    make test
    make install

To fully run the test suite, supply your RBS WorldPay account information via
three environment variables:
    WORLDPAY_INSTALLATION_ID
    WORLDPAY_MERCHANT_CODE
    WORLDPAY_XML_PASSWORD
Otherwise, most of the tests will be skipped.  A verbose trace can be produced
with an additional environment variable:
    WORLDPAY_DEBUG=1


DEPENDENCIES

This module requires these other modules and libraries:

    * Business::OnlinePayment
    * Template -- to construct XML requests
    * MIME::Base64 -- encode used to create header for basic HTTP authentication
    * Net::SSLeay -- post_https & make_headers used to submit requests
    * XML::TreeBuilder -- to parse XML responses


COPYRIGHT AND LICENCE

Copyright (C) 2010 Paul Grassie, Ardis Health, http://www.ardishealth.com. All Rights Reserved.

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.


