|
||||||||||
PREV NEXT | FRAMES NO FRAMES |
See:
Description
Packages | |
---|---|
com.intuit.qbmsconnector | Provides most of the high-level client-facing functionality of the QBMS Connector API such as the
QbmsConnector interface and the QbmsConfiguration class. |
com.intuit.qbmsconnector.crypto | Convenience classes for performing cryptographic operations. |
com.intuit.qbmsconnector.jaxb | Provides JAXB-based QbmsConnector functionality which "speaks" QBMSXML on your behalf. |
com.intuit.qbmsconnector.jaxb.msgset.qbmsxml | |
com.intuit.qbmsconnector.request | Provides strongly-typed QBMS request objects. |
com.intuit.qbmsconnector.response | Provides strongly-typed QBMS response objects. |
com.intuit.qbmsconnector.servlet | Provides servlet support for handling callbacks POSTed by QBMS. |
com.intuit.qbmsconnector.spring | Spring Framework integration classes. |
com.intuit.qbmsconnector.testing | Contains test data [credit card numbers, error-inducing values] for use in the QBMS test environment only. |
com.intuit.qbmsconnector.util | Utility classes used internally by the QBMS Connector API. |
QBMS Connector is a pure Java wrapper around Intuit's QuickBooks Merchant Services [QBMS] API. It abstracts away the low-level details of HTTPS plumbing, XML-to-Java marshalling/unmarshalling, and error handling.
There are two main pieces of the API that will be of interest to
client programmers: QbmsConnector
, an
interface for sending QBMSXML requests and receiving responses, and
QbmsCallbackListener
, an
interface that must be implemented to handle asynchronous callbacks from
QBMS when events such as Merchant signups occur.
Here's some example code which shows how to make a credit card
payment using QbmsConnector
:
// Read in configuration properties from the classpath QbmsConfiguration qbmsConfiguration = new QbmsConfiguration("/qbmsconnector.properties"); // Create a JAXB-backed QbmsConnector QbmsConnector qbmsConnector = new JaxbQbmsConnector(qbmsConfiguration); // Build a payment request... CreditCardChargeRequest request = new CreditCardChargeRequest(); request.setCreditCardNumber("5555555555555555"); request.setNameOnCard("John Doe"); request.setExpirationMonth(12); request.setExpirationYear(2014); request.setAmount(130.00); // ...define a connection ticket... String connectionTicket = "TGT-XXX-XXXXXXXXXXXXXXXXXXXXXX"; // ...and make the payment. try { CreditCardChargeResponse response = qbmsConnector.creditCardCharge(connectionTicket, request); System.out.println(response); } catch (QbmsOperationException e) { System.out.println("Payment failed: " + e.getMessage()); }
If you execute the above code and your application has been correctly configured to communicate with QBMS, you'll see something like the following:
creditCardTransId=ME2034821203 authorizationCode=733952 avsStreet=NotAvailable avsZip=NotAvailable cardSecurityCodeMatch=NotAvailable merchantAccountNumber=4269288763461315 reconBatchId=420070112 MC 2007-01-12 QBMS 17.0 pre-beta paymentGroupingCode=4 paymentStatus=Completed txnAuthorizationTime=Fri Jan 12 17:21:56 EST 2007 txnAuthorizationStamp=1168622516 clientTransId=q0004bb1
The above example references a qbmsconnector.properties file, which must exist on the classpath. This file has the following properties, which must be overridden on a per-application basis:
qbmsconnector.applicationLogin=firsttest.myapp.com qbmsconnector.applicationId=123456789 qbmsconnector.environment=ptc qbmsconnector.model=desktop
It should be noted that obtaining authorization from Intuit to communicate with QBMS is a prerequisite for using QBMS Connector. Your application will need to go through a registration process and generate its own keystore. Instructions for this are provided on the Intuit developer website.
Additionally, for Spring
Framework integration, please see the QBMS Connector Spring package
documentation
.
QBMS Connector uses the Commons Logging API to log useful diagnostic information [raw QBMSXML that gets transferred, configuration property values, and so forth]. If your application uses log4j, you can add the following line to your log4j.properties file to view messages from QBMS Connector:
log4j.logger.com.intuit.qbmsconnector=DEBUG
|
||||||||||
PREV NEXT | FRAMES NO FRAMES |