Project

General

Profile

Actions

Programming Guide » History » Revision 6

« Previous | Revision 6/21 (diff) | Next »
chin-yeh, 10/18/2011 03:20 PM


Programming Guide

This guide describes how to make use of the NMI APIs for payment related transaction and it consists of 2 main parts:

The demo application can be found here:

http://192.168.2.68/ukstore/nmi-sample/orders.jsp

Step-By-Step

Before begin, install the following libraries into your development environment (remove the old versions if exists):

Suggested Payment Flow

Steps:
  1. gather the

Generate the form action URL

Generates the form action URL which is needed in the self-hosted payment form.

Method Signature:

public static String getFormActionUrl(String orderId, String orderDescription, BigDecimal orderAmount, String returnUrl)

Input Parameters

  • orderId - the unique ID for the order
  • orderDescription - a simple description of the order
  • orderAmount - the settlement amount of the order in 2 decimal places, e.g. 12.34
  • returnUrl - the receipt URL

Output Parameters

Returns a form action URL

Code Snippets

    String orderId = request.getParameter("order-id");
    String orderDescription = request.getParameter("order-description");
    BigDecimal orderAmount = new BigDecimal(request.getParameter("order-amount"));
    String returnUrl = request.getParameter("return-url");

    String formUrl = PaymentUtils.getFormActionUrl(orderId, 
            orderDescription, 
            orderAmount, 
            returnUrl);

Payment Status Callback

Queries the payment status using the token ID that returned by NMI. After obtained the payment status, update the particular record in the Interface table.

Important: This method is supposed to be placed and invoked in the very beginning of the receipt page, (a.k.a. the returnUrl that specified in Generate form action URL).

Method Signature:

public static String queryAndPersistPaymentStatus(Connection dbConnection, HttpServletRequest servletRequest)

Input Parameters

  • dbConnection - an established database connection
  • servletRequest - HttpServletRequest object which will be used to obtain the request parameter, token-id

Output Parameters

the order ID that used in the particular payment transaction

Code Snippets

    Connection connection = createDbConnection("java:/DB2DS_USA");
    String orderId = "";
    try {
        orderId = PaymentUtils.queryAndPersistPaymentStatus(connection, request);
    } finally {
        if (connection != null) {
            connection.close();
        }
    }

Updated by chin-yeh about 13 years ago · 6 revisions