Skipjack Supplementary .NET API Integration Guide · referenced by this guide from the Skipjack...

41
Skipjack Supplementary .NET API Integration Guide

Transcript of Skipjack Supplementary .NET API Integration Guide · referenced by this guide from the Skipjack...

  • Skipjack Supplementary .NET API Integration Guide

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API Integration Guide

    Table of Contents Table of Contents .................................................................................................................................................... 2 About this Document .............................................................................................................................................. 3

    Copyright Notice ................................................................................................................................................. 3 Trademark Notice ............................................................................................................................................... 3 Interchange Qualifications and Transaction Rates ............................................................................................. 3 Publication History ............................................................................................................................................. 3 Documentation Conventions ............................................................................................................................... 4 Obtaining Additional Development Information and Documentation ............................................................... 6 Contacting Skipjack Financial Services.............................................................................................................. 7

    Features Supported by the Supplementary .NET API SDK ................................................................................... 7 System Requirements for Using the Supplementary .NET API SDK ................................................................ 8

    Application Development Lifecycle Using the Supplementary .NET API ............................................................ 9 Obtaining and Installing the Supplementary .NET API ....................................................................................... 10

    Files, Applications, Documents, and Start Menu Items Installed ..................................................................... 10 Installing the Supplementary .NET API ........................................................................................................... 11 Upgrading from a Previously Installed Version of the SDK ............................................................................ 13

    Supplementary .NET API Functional Overview .................................................................................................. 14 Supplementary .NET API Class Model ................................................................................................................ 16

    Major Classes of the Supplementary .NET API ............................................................................................... 16 Minor Classes of the Supplementary .NET API ............................................................................................... 16 Example Applications ....................................................................................................................................... 17 Entering your Account Credentials to Start the Example Applications ........................................................... 17 Using the Skipjack Batch File Processing Example Application ..................................................................... 19 Code Snippets for the Skipjack Batch File Processing Example Application .................................................. 21 Using the Skipjack Recurring Payments Example Application ....................................................................... 25 Code Snippets for the Skipjack Recurring Payments Example Application .................................................... 27 Using the Skipjack Reporting Example Application ........................................................................................ 31 Code Snippets for the Skipjack Reporting Example Application ..................................................................... 33 Using the Skipjack Settlement Batch Operations Example Application .......................................................... 36 Code Snippets for Skipjack Settlement Batch Operations Example Application ............................................. 37

    Frequently Asked Questions ................................................................................................................................. 39

    Skipjack Supplementary NET SDK Implementation Guide_RevB4.docx

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 3 of 41

    About this Document The information contained this guide is intended for use by experienced application developers who are developing applications for integration with the Skipjack Transaction Network using the Supplementary .NET API Software Development Kit (SDK). This guide complements the HTML-based Help file bundled with and installed on your computer when the SDK in installed. Please read this guide in its entirety before contacting Skipjack Financial Services with any development or integration-related support questions. This latest version of this document is available from our Web site at http://www.skipjack.com/developers.aspx.

    Copyright Notice 2008 Skipjack Financial Services. All rights reserved. The information contained herein is for information purposes only. Skipjack makes no warranty, expressed or implied, in this document. No part of this information may be reproduced in any form or by any means or transferred to any third party without the prior written consent of Skipjack Financial Services.

    Trademark Notice All trademarks, registered trademarks, and service marks mentioned or used within this document are owned wholly by their respective owners.

    Interchange Qualifications and Transaction Rates As your Payment Solution Skipjack Financial Services cannot guarantee interchange qualification for any specific transaction. It is the responsibility of each Merchant to confirm that their transactions qualify for the correct interchange rates in consultation with their Merchant Account Provider and Payment Processor. If you experience issues with interchange qualification, please contact the Skipjack Financial Services Support Group so that we can work with your Payment Processor to identify and correct any issues. Your Payment Processor must provide the necessary information to direct you and/or Skipjack in the resolution process.

    Publication History

    Date Version Comments

    April 2007 Version 0.9 (Draft) Issued for internal Skipjack Financial Services review only.

    June 2007 Version 1.0_RevB2 Published to support the first release of the Supplementary .NET API SDK.

    August 2007 Version 1.0_RevB3 Minor editorial updates.

    September 2008 Version 1.0_RevB4 Minor editorial updates.

    http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|2088223

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 4 of 41

    Documentation Conventions The material presented in this guide uses the following text conventions throughout, where applicable.

    Convention Usage Example

    Courier text

    Code Snippets, HTML Code, Skipjack Transaction Network Request Response Examples text

    Bold text Browser Elements, Fields Names, and Menu Items, Emphasis Notes

    click on a Submit button. make sure you enter your HTML Serial Number.... NOTE: You must consider the following when

    Blue Underline

    Hyperlinks (links) to external resources on the Web. Click on these to go to the document or web site identified by the link.

    Visit http://www.skipjack.com to learn more about Skipjack Financial Services.

    Quoted text Primary use is to denote cross-references (clickable hotlinks in the PDF version) to a location within this document. Also used within tables in this document to enclose characters that might otherwise be overlooked.

    See the About this Document section for details. This field can also include the . (period) character.

    Italics Document Title See the Skipjack Integration Guide for details.

    http://www.skipjack.com/

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 5 of 41

    Definitions of Variable Types There are three types of variables for all methods: Required, Optional, and Conditional variables.

    1. Required Variables are mandatory variables which must be included in all transaction data requests sent. If required variables are missing in transaction data sent to the Skipjack Transaction Network, an error code will be returned to your application.

    2. Optional Variables are not required and may be omitted.

    3. Conditional Variables are variables that are required if another condition applies, for instance variable A is required if variable B is not included or in cases of a variable applying to specific Payment Processors or services. There are relatively few conditional variables.

    Permitted Syntax for Variable Fields The permitted characters for variables used in the transaction variable tables throughout are defined below. Please ensure you follow these conventions when entering data into the applicable variable fields.

    Formatting Type Description of Permitted Characters Usage Notes

    Numeric All number characters only. Includes all integers.

    Alphabetic (Alpha) Only

    All letters of the alphabet only. All letters of the alphabet excluding special characters "~`!@#$%^&*()_-+=.

    Alpha-Numeric All numeric characters and alphabetic characters but excluding restricted characters.

    All numeric and alphabetic characters excluding special characters "~`!@#$%^&*()_-+=.

    All Characters All numeric characters, all letters of the alphabet, and most symbols but excluding restricted characters.

    All characters, including alpha-numeric characters but excluding restricted characters &,%,*.

    Restricted Characters

    Characters that are reserved for special uses by internal system use and cannot be included in variable names or field values.

    Restricted for special (system) uses: &,%.*

    Special Characters Special characters only. "~`!@#$%^&*()_-+= only

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 6 of 41

    Obtaining Additional Development Information and Documentation A complete listing of Developer resources including User Guides, Integration Guides, Developer and Merchant Resources, support links, and other resources is available from the Skipjack Financial Services Web site.

    http://www.skipjack.com/developers.aspx http://www.skipjack.com/support.aspx

    You can obtain the latest version (in Adobe PDF format) of this document as well as all other documentation referenced by this guide from the Skipjack Financial Services Web site at http://www.skipjack.com. This document references other Skipjack documentation. Consult each guide as required by clicking on the link below (PDF version only).

    Skipjack Integration Guide Skipjack Merchant Reporting Guide Skipjack Merchant Services Guide

    http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|2088223http://www.skipjack.com/support.aspxhttp://www.skipjack.com/http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/Skipjack%20Reporting%20Tool%20Guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/merchant_user_guide_v2.5.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 7 of 41

    Contacting Skipjack Financial Services If you have problems using the Supplementary .NET API SDK or have questions about its use or any topics that are not covered in this documentation but related to this products use, please contact Skipjack Financial Services.

    On the Web: http://www.skipjack.com Toll-Free Telephone Support Line: 1-888-368-8507 By E-mail: [email protected]

    Features Supported by the Supplementary .NET API SDK This section describes the features of the Supplementary .NET API SDK.

    Batch Processing for off-line processing of all core transaction methods supported by Skipjack Batch File methods including: Authorize/AuthorizeAPI methods, Get Transaction Status, and Change Transaction Status method, all applicable Recurring Payment methods.

    Recurring Payment for automatic processing of periodic transactions including: Add Recurring

    Payments, Delete Recurring Payment, Edit Recurring Payment, and Get Recurring Payment Information methods.

    Reporting Functions supported by Skipjack include advanced reporting functions used to create

    detailed reports from transaction data held within the Skipjack Transaction Networks database.

    Supports Batch Settlement Operations including Close Current Open Settlement Batch and Get Status of Settlement Batch functions to manage and view Settlement Batches for a Skipjack Merchant Account.

    Example Applications included (Demo Applications) to provide Developers with .NET (C# only)

    examples to aid in their Application Development and Integration efforts. Example Applications also serve as tools for troubleshooting hardware and network connectivity issues during application development.

    Complete Code Snippets to illustrate how to implement API classes to perform typical tasks used by

    the Supplementary .NET API for transaction processing methods supported by the API.

    Full Developer support provided by Skipjack Financial Services using the toll-free phone line.

    http://www.skipjack.com/

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 8 of 41

    System Requirements for Using the Supplementary .NET API SDK

    The Supplementary .NET API SDK has been tested with Microsoft Windows 2000, Windows 2003 Server, Windows XP, and Windows Vista operating systems.

    The Supplementary .NET API SDK requires the .NET Framework 2.0 be installed on the client machine. The .NET Framework may be downloaded from Microsoft from their online support site at Microsoft .NET Framework Development Center.

    Programming languages supported include C# and other .NET languages. Languages other than .NET, such as Visual Basic 6.0 (VB6), Delphi 6, and PowerBuilder are supported when using Type Library (TLB) provided. A standard wrapper is currently being developed. Contact Skipjack Financial Services for more details if this is required by your implementation.

    You must be using Microsoft Visual Studio 2005 or later for your .NET development.

    http://msdn2.microsoft.com/en-us/netframework/aa731542.aspx

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 9 of 41

    Application Development Lifecycle Using the Supplementary .NET API This section describes the planning, development, integration, and deployment lifecycle of your application development recommended for effectively using the Supplementary .NET API. Please read, understand, and follow this development process for your application development to avoid unnecessary problems or delays with your development, integration, and deployment. NOTE: Some steps require a waiting period to process the paperwork required by the third parties involved in electronic transaction processing process, such as Payment Processors, Banks, and Financial Institutions. The length of time for this processing period is outside of the control of Skipjack Financial Services. The timelines indicated here should be considered rough guidelines only and reflect the typical time for each of these steps to be completed and can be used for planning your application deployment.

    1. Obtain your Skipjack Developer Account by enrolling online at the Skipjack Financial Services web site at http://www.skipjack.com/developers.aspx. Upon completion of this process, you will receive e-mail from Skipjack Financial Services containing all information required to access and use the Skipjack Transaction Network, including: HTML Serial Number(s) and Developer Serial Number(s): required to submit transactions to the

    Skipjack Transaction Network. Vendor Login Serial Number, Username, and Password: required for Secure Login using Web

    interfaces at https://secure.skipjack.com : for Reports Manager and Merchant Register access. Link to the SDK download location to download the Supplementary .NET API installation file. Access to our toll-free Supplementary .NET API Development Support telephone support line:

    1-866-438-8767.

    2. Obtain and read all documentation for the Supplementary .NET API SDK and install the Supplementary .NET API SDK on your computer. If you need to upgrade your version of the SDK, see the Upgrading from a Previously Installed Version of the SDK section.

    3. Obtain a Merchant Account from each financial institution of your choice for each credit card type to

    be accepted (Visa, MasterCard, American Express, JCB, Diners Club, Discover) by your Merchant Account. Contact Skipjack Financial Services if you need help choosing an appropriate credit card Acquirer. NOTE: You must provide detailed business information to compete this step. The processing time required after submitting the applicable paperwork may take up to four weeks. Please allow sufficient time in your planning process to accommodate this time.

    4. Develop your application using the Supplementary .NET API SDK. Follow the instructions and development guidelines and other relevant information in this Integration Guide and the associated Help file included with the Supplementary .NET API. The Help file contains more detailed information about minor and major classes.

    5. Test your application in Development and Live environments in accordance with the Testing Guidelines

    section of the Skipjack Integration Guide. Please follow these guidelines as they apply to your application.

    http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|1071218https://secure.skipjack.com/http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 10 of 41

    6. Deploy your application.

    7. Certify your application with Skipjack to demonstrate to your customers and users of your commitment

    to the security, reliability, dependability, and user-friendliness of your application. For more information about Skipjack Certification go to www.skipjack.com/certification to learn about the benefits of becoming Skipjack Certified.

    8. Register your application online with Skipjacks Solution Finder to maximize your business

    opportunities. Registration is free and provides Skipjacks sales partners with a link from their customers to you. For more about registering go to https://secure.skipjack.com/partners/search.aspx or email [email protected] .

    Obtaining and Installing the Supplementary .NET API The Supplementary .NET API SDK is distributed as a ZIP archive named in the following format: Supplementary_.NET_SDK_v2.2_YYYYMMDD.

    Files, Applications, Documents, and Start Menu Items Installed The following files and directories are installed on your computer during the Supplementary .NET API SDK installation process.

    Installed Item Description of Contents

    \bin Contains the SkipjackRetailAPIExtras.dll, the XML IntelliSense Help File, an executable file containing the Example Applications (Demo Application) using the DLLs, Type Library (TLB) for integrating with VB6 or Delphi 6, and the XML Schema (SkipjackRetaiAPIExtras.xml).

    \doc Contains the following documents and files: ReadMe file (ReadMe.rtf), License File (License.rtf), Help format documentation (SkipjackSupplementary.chm),

    \examples The Example Application includes a number of fully-functional Example Applications that can be run to perform actual transactions (credit card transactions only) and is used to understand how the Supplementary .NET API functions. The Example Applications is also important for testing hardware, software, and network (connectivity) debugging functionality.

    \examples\c# Files for C# project and all related source files for the Example Application (Demo Application) using the DLLs.

    Start Menu items The Supplementary .NET API adds the (default) menu path on your PC: Start > Programs > Skipjack > Skipjack Supplementary .NET API SDK menu item is added. The following sub-menu items are listed in the Supplementary .NET API SDK menu:

    C# Test Project Documentation Example Applications License Read Me Uninstall

    http://www.skipjack.com/certificationhttps://secure.skipjack.com/partners/search.aspxmailto:[email protected]

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 11 of 41

    Installing the Supplementary .NET API To download and install the Supplementary .NET API SDK follow these steps.

    1. Download the Supplementary_.NET_SDK_v2.2_YYYYMMDD file from the Skipjack Financial Services at http://www.skipjack.com/developers.aspx. Right-click on the SDK file and select the Save Target As option. Select a convenient download location on your computer and click the OK button. Remember this location for later access and to delete the installation file upon completion if installation.

    2. Double-click on the Supplementary_.NET_SDK_v2.2_YYYYMMDD archive (Windows 2000 users require WinZip to extract the MSI installer file from the ZIP archive). You will see the following installation file.

    3. Double-click on the Supplementary_.NET_SDK.msi file to start the MSI installer program. Windows Vista users may be prompted with the User Access Control dialog box. Select Accept to continue with the installation.

    4. The Skipjack Supplementary .NET API SDK window is displayed. Select the Next> button to

    proceed with the installation process.

    http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|2088223

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 12 of 41

    5. A series of dialog boxes is displayed as installation progresses. Read the instructions in each dialog box

    as they are presented and select the appropriate options to proceed with the installation. When the SDK installation process is completed a dialog box confirming the competed installation is displayed. Select the Close button to close this window and return to your desktop.

    6. The SDK has been successfully installed. You do not need to restart your computer. You can immediately access the Supplementary .NET API SDK components by clicking on the Start>Programs>Skipjack> Supplementary .NET API SDK sub-menu items.

    7. To use the SkipjackRetailAPIExtras.dll in your application development from within MS Visual Studio you must reference the newly installed SkipjackRetailAPIExtras.dll, shown below.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 13 of 41

    Upgrading from a Previously Installed Version of the SDK If you are upgrading your current version of the Supplementary .NET API SDK to a newer version, you must uninstall the existing version and install the new version of the SDK, otherwise the following error dialog box is displayed

    NOTE: To uninstall the SDK use the Uninstall menu option in the Supplementary .NET API menu on the Start menu path. Follow the on-screen prompts during the Uninstallation process. (Microsoft Vista users may be prompted with the User Access Control dialog box. Select Accept to continue. ) When the SDK has been removed from your computer, the Start menu path for this application is removed and no other confirmation of the removal is displayed.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 14 of 41

    Supplementary .NET API Functional Overview

    The Supplementary .NET API SDK handles all internal communications and formatting for processing supplementary electronic transactions using the Skipjack Transaction Network. This section gives a brief overview of the API classes used in transaction processing.

    NOTE: The information in this section is also available in the online (HTML-based) Help file on your computer when the SDK is installed. The Help documentation includes hyperlinks to each Help topic, where applicable, for more detailed information about each API class. The illustration below shows the topography used by the Supplementary .NET API to perform transaction processing operations.

    NOTE: For more information about transaction processing concepts mentioned here see the Skipjack Integration Guide.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 15 of 41

    1. The Supplementary .NET API sends the transaction data to the Skipjack Transaction Network over a Secure Socket Layer (SSL) HTTPS connection via the Internet. The Skipjack Transaction Network receives the data and forwards the transaction data, as applicable to the request type, to the Payment Processor which in turn routes this data via direct connections to the appropriate Banks and Credit Card Associations.

    2. The SJLogger class is used to record transaction request and response logs into a local file. You may permit your application users to define the level of logging set in your application using this class. This log file is used for troubleshooting and debugging activities.

    3. The Supplementary .NET API receives transaction response messages from the Skipjack Transaction Network and your application interprets and displays the results of transaction to the user. The Approval, Decline, or Failure response messages returned from the Skipjack Transaction Network to your application. NOTE: The Skipjack Transaction Network stores all the transaction data in encrypted format. Transactions can be recalled later by the online Skipjack Reports Manager and Merchant Register, or further processed using subsequent transaction processing methods.

    4. Depending on the Skipjack Merchant Account settings (and the transaction type, for example Batch File Upload Authorize) the transaction will be added to the current open Settlement Batch. This Settlement Batch is settled when this Settlement Batch is submitted for processing by the Payment Processor. Alternatively your application may use the Close Current Open Batch API (CSettlementBatch class) to close the current open Settlement Batch for accounts set to manual none.

    Your application can use the CReports class to access data held in the Skipjack database to generate a wide range of reports for all transactions using the CReports class. Alternatively, you may use the Skipjack Financial Services Merchant Register and/or Report Manager, online, Web-based Reporting GUI. NOTE: For more information about the use of the Reports Manager and Merchant Register see the Skipjack Merchant Reporting Guide and the Skipjack Merchant Services Guide respectively.

    http://imgserver.skipjack.com/imgServer/5293710/Skipjack%20Reporting%20Tool%20Guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/merchant_user_guide_v2.5.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 16 of 41

    Supplementary .NET API Class Model The classes used by the Supplementary .NET API SDK are described below. For more detailed information including hotlinks to specific information about each class, see the Help file installed on your computer when the SDK is installed. You can access the Help file from the following path: Start > Programs > Skipjack > Supplementary .NET API SDK > Documentation.

    Major Classes of the Supplementary .NET API

    The Supplementary .NET API is represented by four major public classes:

    CBatchFile: This major class is used to perform the uploading and management (CBatchFile.GetBatchResults Method) of Batch Files including batch processing of Authorize or AuthorizeAPI, Get Transaction Status, Change Transaction Status, and Recurring Payment (Add, Edit, Delete) transactions.

    CSettlementBatch: This major class provides an API method to close the current open Settlement Batch (CSettlementBatch.CloseCurrentOpenBatch Method) as well as a method to retrieve the Settlement Batch information for a specified Settlement Batch (CSettlementBatch.GetSettlementBatchStatus Method). All methods of this class are static.

    CRecurringPayment: This major class is used for creating and managing Recurring Payment schedules and related transactions. Recurring Payment schedules are determined (CRecurringPayment.GetField Method) and Recurring Payments are actioned by the AddPayment, EditPayment, DeletePayment methods.

    CReports: This major class allows the creation of pre-formatted and customized reports for any transactions previously processed using any methods. This allows complete access to transaction records and data within the Skipjack Transaction Network database.

    Minor Classes of the Supplementary .NET API

    There is only a one minor class in the Supplementary .NET API.

    SJLogger: This class may be used by your application to control the verbosity of the API with your application for logging predefined events to a local file. You can use this class to define the level of logging used by your application to support troubleshooting and debugging activities.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 17 of 41

    Example Applications The example applications are fully-functional transaction processing applications you may use to process electronic transactions to understand the logic and programming techniques needed to be handled in your own application development. To use the Example Applications you must meet the following prerequisites:

    The Supplementary .NET API SDK must be is installed on your computer. The Example Applications are installed in the Supplementary .NET API SDK sub-menu.

    You must have your Skipjack Development (Test) Account credentials for your Skipjack Account to enter into the Main Menu of the Example application.

    You require Internet access (preferably a high-speed, dedicated connection) to connect your computer to the Skipjack Transaction Network for submitting transactions and using the Example Applications to process real transaction (either Test or Live transactions).

    You have a working knowledge of the methods associated with each example application. Consult the reference document, Skipjack Integration Guide, for detailed instructions about each of the methods described in this section including all usage and formatting requirements.

    Entering your Account Credentials to Start the Example Applications 1. Select the Example Application item from the path Start menu path: Start Menu > Skipjack >

    SkipjackRetailAPI > Example Application to open the Supplementary .NET API SDK Main window, shown below. Microsoft Vista users may be prompted with the User Access Control window. Select Accept to proceed.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 18 of 41

    2. Enter your Skipjack Account Credentials into each of the fields provided. If you are using a Production (Live) Account ensure that the Is Production check-box is selected.

    3. Select a Log Level in the Select Log Level drop-down list if you wish to log debugging information to a local file. (Optional.) NOTE: The Log File Path field displays the path on your computer to the local log file. The size of the log file can grow substantially with high levels of logging set. Users should periodically manually delete log files or archive them on their computer when the log file becomes very large. No full credit card data is included in the log files.

    4. Select the desired application you wish to launch from the Select Application drop-down list and select

    the Start button. There are four Example Applications available for use. The use of each is described in the subsequent sections, below.

    Skipjack Batch File Processing Skipjack Recurring Payments Skipjack Reporting Skipjack Settlement Batch Operations

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 19 of 41

    Using the Skipjack Batch File Processing Example Application The Skipjack Batch File Processing example application may be used to demonstrate the batch processing functionality of the Supplementary .NET API SDK. Batch processing is used to process transactions in an offline (batch) environment and there is support for most Skipjack transaction processing methods. For example you can process Authorizations requests as a batch file operation. For additional information about Batch File Processing see the Batch File Methods for Transaction Processing section of the Skipjack Integration Guide. To use the Skipjack Batch File Processing example application:

    1. Start the Skipjack Batch File Processing example application using the procedure described in the Entering your Account Credentials to Start the Example Applications section.

    2. Select the Batch File you want to upload from your computer to the Skipjack Transaction Network. Select the Choose File button and select the Upload Batch File button to upload the selected file. When the file upload is completed the dialog box below displays the results of the upload. The batch file must be properly formatted as described in Formatting Requirements of Name-Value Pairs by Batch Method Type section of the Skipjack Integration Guide.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 20 of 41

    3. The Check Batch File Status region contains fields to determine the status of any previously uploaded batch file. You can specify a Batch ID and/or Data From MM/DD/YYYY in the appropriate fields. Enter data into Batch ID, Date From, and Data Thru fields to filter the results. If nothing is entered in the Date Thru field the current date is supplied automatically. Select the Get File Status button to submit the Get Batch File Status request to the Skipjack Transaction Network. The results records are displayed as shown below.

    NOTE: You can select the Show Deleted Files to also include any Deleted Batch Files in your return records.

    4. The Get Batch Response File region contains all the controls needed to obtain information about individual Batch response files. You can copy-and-paste or enter a Batch ID into the Batch ID field and select the get Batch File Response button to display the Response Records and the Raw Response (unparsed results) as shown below.

    5. The Modify Batch File Status region is used to modify a previously uploaded Batch File. Specify a Batch ID field and a Desired Status in the respective fields and select the Modify Batch File Status button to submit the transaction for processing. The Batch File status is displayed as either an Successful (success) or an Error (failure) dialog box.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 21 of 41

    Code Snippets for the Skipjack Batch File Processing Example Application This section contains code snippets associated with the Skipjack Batch File Processing example application. Use these code snippets to understand the functionality of the Supplementary .NET API SDK and as an aid to your application development.

    Batch Upload Code Snippet // Create the object by supplying serial number, developer serial number and isproduction boolean value // CBatchFile BatchFile = new CBatchFile( "000111000123", "999222999111", false ); // Load a Skipjack-formatted batch file // BatchFile.LoadFile( @"C:\Batch01920394.txt" ); // Upload the file // BatchFile.UploadFile(); // Check the response code // if ( BatchFile.ErrorCode == CBatchFile.ERROR_CODES.FILE_UPLOAD_SUCCESSFUL ) { MessageBox.Show( "Batch file upload successful.", "Success" ); } else if ( BatchFile.ErrorCode == CBatchFile.ERROR_CODES.FILE_UPLOAD_FAILED ) { MessageBox.Show( "Batch file upload failed.", "Upload Failed" ); } else if ( BatchFile.ErrorCode == CBatchFile.ERROR_CODES.FILE_UPLOAD_EXCEPTION ) { MessageBox.Show( "An error occured while uploading. Batch file upload failed.", "Error" ); } else if ( BatchFile.ErrorCode == CBatchFile.ERROR_CODES.NETWORK_PROBLEMS ) { MessageBox.Show( "A network error occured while uploading. Batch file upload failed.", "Error" ); } else { MessageBox.Show( "Status of file upload unknown.", "Warning" ); {

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 22 of 41

    Get Batch File Status Code Snippet // Static method GetBatchFileStatus of CBatchFile is available to retrieve status of a file. // Supply serial number, developer serial number, isproduction boolean value, optional batch file // ID, // optional DateFrom value (MM/DD/YYYY), optional DateThru value (MM/DD/YYYY) and show // deleted/closed boolean. // There is also a non-static GetBatchFileStatus method that accepts no parameters. // CBatchFile.CBatchFileStatusResponse ObjResponse = CBatchFile.GetBatchFileStatus( "000111000123", "999222999111", false, null, "", "", true ); if ( ObjResponse != null && ObjResponse.HasResults() ) { IEnumerator keys = ObjResponse.Keys; if ( keys != null ) { while ( keys.MoveNext() ) { string IdKey = ( string ) keys.Current; if ( IdKey != null ) { CBatchFile.CBatchFileStatusResponse.CFileStatus fs = ObjResponse.GetRecordById( IdKey ); if ( fs != null ) { // Grab the field values you need and do something with them (like so): // // fs.BatchId; // fs.FileType; // fs.UploadDate; // fs.StartedDate; // fs.CompletedDate; // fs.FileState; // fs.FileStateMessage; // fs.TotalFailed; // fs.TotalProcessed; // fs.TotalRequests; } // if not null } // batch ID key not null } // iterate the response results } // have a response object

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 23 of 41

    Get Batch File Status Code Snippet // Create the object by supplying serial number, developer serial number and isproduction boolean value // CBatchFile BatchFile = new CBatchFile( "000111000123", "999222999111", false ); // Assumes you have already uploaded a batch file and retrieved its batch file ID using the GetBatchFileStatus //method... // BatchFile.BatchID = "000038992883"; CBatchFile.CBatchFileResponse ObjResponse = BatchFile.GetBatchResults(); if ( ObjResponse != null && ObjResponse.HasResults() ) { if ( ObjResponse.IsAuthorizationFile ) { IEnumerator Items = ObjResponse.GetEnumerator(); int cnt = 1; while ( Items.MoveNext() ) { // since we know this is an authorization file, // only CBatchAuthResponse object will be in the collection CBatchFile.CBatchAuthResponse Auth = ( CBatchFile.CBatchAuthResponse ) Items.Current; if ( Auth != null && Auth.IsValidRecord ) { // Grab the values your code requires like so... // // Auth.ApprovalCode; // Auth.Amount; // Auth.DeclineMessage; // Auth.AvsCode; // Auth.AvsMessage; // Auth.OrderNumber; // Auth.ReturnCode; // Auth.Cvv2ResponseCode; // Auth.Cvv2ResponseMessage; // Auth.IsApproved; // Auth.TransactionId; } } // iterate } else { IEnumerator Items = ObjResponse.GetEnumerator(); // // With API files, there is no way to know in advance what type of request was originally sent in //the API // batch request file. Therefore, any type of API response can be returned. We must check for //all the possible // cases (change status, get status, recurring payment requests such as ADD, EDIT and delete). // while ( Items.MoveNext() ) { object ObjApi = Items.Current; bool RecordAdded = false; if ( ObjApi != null ) { // You will have to cast ObjApi and check if it is null. ObjApi could be any one //of the // objects below. After casting, if you find a non-null object, you can grab the //field values.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 24 of 41

    // try a change status response CBatchFile.CChangeStatusRecord Csr = ObjApi as CBatchFile.CChangeStatusRecord; // try a get status response CBatchFile.CGetStatusRecords Gsr = ObjApi as CBatchFile.CGetStatusRecords; // try an add recurring payment response CRecurringPayment.CRecurringAddResponse RecurAdd = ObjApi as CRecurringPayment.CRecurringAddResponse; // try an edit/delete recurring payment response CRecurringPayment.CRecurringModifyResponse RecurModify = ObjApi as CRecurringPayment.CRecurringModifyResponse; // try for an error response CBatchFile.CBatchErrorRecord Err = ObjApi as CBatchFile.CBatchErrorRecord; } // it is not null } // iterate the API items } // check for results } // not null

    Get Batch File Status Code Snippet // Call the static ModifyFileStatus supplying the serial number, developer serial number, the isproduction boolean value, the batch file ID // and the CBatchFile.FILE_MODIFY_DESIRED_STATUS enumeration value. There is also a non-static version of ModifyFileStatus. // ERROR_CODES err = CBatchFile.ModifyFileStatus( "000111000123", "999222999111", false, "000038992883", FILE_MODIFY_DESIRED_STATUS.FREEZE ); if ( err == CBatchFile.ERROR_CODES.ACTION_SUCCESSFUL ) { MessageBox.Show( "Batch file status has been changed successfully.", "Info" ); } else { MessageBox.Show( err.ToString(), "Error" ); } // notify user

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 25 of 41

    Using the Skipjack Recurring Payments Example Application The Skipjack Recurring Payments example application can be used to demonstrate the Recurring Payments functionality contained within the Supplementary .NET API SDK. This functionality includes the ability to Add, Delete, Modify, and Get Recurring Payments Information using the Supplementary .NET API. For additional information about Recurring Payments see the appropriate section of the Skipjack Integration Guide.

    1. Start the Skipjack Recurring Payments Example Application using the procedure described in the Entering your Account Credentials to Start the Example Applications section.

    2. To see a list of the Recurring Payments previously submitted to the Skipjack Transaction Network select

    the Search button without specifying information in any of the Recurring Payment Information fields. The Response Records are displayed in 2 places, in the Response region (unparsed results) and the Parsed Results region, as shown below.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 26 of 41

    3. To Add a Recurring Payment using Demo values, select the Load Demo Values button to load new (demo) values into each field. Select the Add button to submit the request for processing. The transaction response messages are displayed at the top of the window. The Response region displays the status of your transaction response returned by the Skipjack Transaction Network .

    4. To Edit the Recurring Record added above, you must clear the previously displayed Recurring Payment Information results by select the Clear button. Select the Search button to display the existing Recurring Payments records. Double-click to the left of the Recurring Record you wish to edit to load the data into the Recurring Payment form fields.

    5. You can now change any of the values in the form fields and select the Edit button to submit the Edit Recurring Payment request. The transaction response message is displayed in the Response region of the window. In this case the illustration depicts a successful Amount change.

    6. You delete a single Recurring Payment or all Recurring Payments scheduled for a customer (associated with a specific Transaction ID). First, select the customer record (in the parsed results list) by double-clicking in the left-most column beside the row for the transaction you want to delete. If you specify the date in the Transaction Date field and the Transaction ID you delete a single payment in a Recurring Payment schedule. If you specify the Transaction Date field as empty and specify the Transaction ID you delete all Recurring Payments for the selected customer. Select the Delete button to submit the Delete Recurring Payment transaction. The transaction response for the delete transaction is displayed in the Response region of the window.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 27 of 41

    Code Snippets for the Skipjack Recurring Payments Example Application This section contains code snippets associated with the Skipjack Recurring Payments Example Application. Use these snippets to understand the functionality of the Supplementary .NET API SDK and as an aid to your application development.

    Add Recurring Payment // Instantiate a CRecurringPayment object by supplying the serial number, developer serial number and // the isproduction boolean value in the contructor. // CRecurringPayment RecurringPayment = new CRecurringPayment( "000111000123", "999222999111", false ); // add required parameters // RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtOrderNumber, "392830091A8EE5BK" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtName, "Dave Smith" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtEmail, "[email protected]" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAddress1, "4 Test Drive" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtCity, "Cincinnati" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtState, "OH" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtPostalCode, "30329" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtPhone, "9993339999" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAccountNumber, "4003000123456781" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtExpMonth, "08" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtExpYear, "2020" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtItemNumber, "001" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtItemDescription, "Monthly Payment" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAmount, "10.00" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtStartingDate, "05/01/2007" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtTotalTransactions, 12 ); RecurringPayment.SetPaymentFrequency( CRecurringPayment.FREQUENCIES.MONTHLY ); // add optional parameters // RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress2, "Suite 133" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress3, "Red Door" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress4, "End of hall" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtCountry, "US" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtFax, "9993331111" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtComment, "Testing recurring payments" ); CRecurringPayment.ERROR_CODES err = RecurringPayment.AddPayment(); // Grab the values you need after the AddPayment method is called... // // RecurringPayment.OriginalResponse; // RecurringPayment.ErrorCode // RecurringPayment.PaymentId;

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 28 of 41

    Edit Recurring Payment // Instantiate a CRecurringPayment object by supplying the serial number, developer serial number and // the isproduction boolean value in the contructor. // CRecurringPayment RecurringPayment = new CRecurringPayment( "000111000123", "999222999111", false ); // add required parameters // RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtOrderNumber, "392830091A8EE5BK" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtName, "Dave Smith" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtEmail, "[email protected]" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAddress1, "4 Test Drive" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtCity, "Cincinnati" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtState, "OH" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtPostalCode, "30329" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtPhone, "9993339999" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAccountNumber, "4003000123456781" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtExpMonth, "08" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtExpYear, "2020" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtItemNumber, "001" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtItemDescription, "Monthly Payment" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtAmount, "100.00" ); // edit the amount of payment for one payment period...change amount to $100.00 RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtStartingDate, "05/01/2007" ); RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.rtTotalTransactions, 12 ); // payment ID is required for Edit requests RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.szPaymentId, "R1402019521431.102" ); RecurringPayment.SetPaymentFrequency( CRecurringPayment.FREQUENCIES.MONTHLY ); // add optional parameters // RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress2, "Suite 133" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress3, "Red Door" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtAddress4, "End of hall" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtCountry, "US" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtFax, "9993331111" ); RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.rtComment, "Testing recurring payments" ); // Specify the monthly payment in the schedule to edit. If szTransactionDate is not passed, all payments // within a given payment schedule will be edited. // RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.szTransactionDate, "08/01/2007" ); CRecurringPayment.ERROR_CODES err = RecurringPayment.EditPayment(); // Grab the values you need after the EditPayment method is called... // // RecurringPayment.OriginalResponse; // RecurringPayment.ErrorCode

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 29 of 41

    Delete Recurring Payment // Instantiate a CRecurringPayment object by supplying the serial number, developer serial number and // the isproduction boolean value in the contructor. // CRecurringPayment RecurringPayment = new CRecurringPayment( "000111000123", "999222999111", false ); // payment ID is required for Delete requests // RecurringPayment.AddField( CRecurringPayment.REQUIRED_FIELDS.szPaymentId, "R1402019521431.102" ); // Specify the monthly payment in the schedule to delete. If szTransactionDate is not passed, the entire // payment schedule will be deleted. // RecurringPayment.AddField( CRecurringPayment.OPTIONAL_FIELDS.szTransactionDate, "08/01/2007" ); CRecurringPayment.ERROR_CODES err = RecurringPayment.DeletePayment(); // Grab the values you need after the DeletePayment method is called... // // RecurringPayment.OriginalResponse; // RecurringPayment.ErrorCode

    Get Recurring Payment Information // Call the static method GetPaymentInformation. A non-static method is also available. // Method accepts the serial number, developer serial number, isproduction boolean value, the optional recurring payment ID, // the optional payment date, the optional credit card expiration month, the optional credit card expiration year and the RT_SCHEDULE_OPTIONS enum value. // CRecurringPayment.CRecurringPaymentInfo info = CRecurringPayment.GetPaymentInformation( "000111000123", "999222999111", false, null, null, null, null, CRecurringPayment.RT_SCHEDULE_OPTIONS.ALL_PAYMENTS ); if ( info != null ) { // info.OriginalResponse; // original response is available // info.ErrorCode; // error response code is available // info.NumRecords; // number of records returned is available if ( info.HasResults() ) { IEnumerator Objects = info.GetEnumerator(); if ( Objects != null ) { while ( Objects.MoveNext() ) { // Get the CPaymentSchedule objects out of the enumeration // CRecurringPayment.CPaymentSchedule Sched = ( CRecurringPayment.CPaymentSchedule ) Objects.Current; if ( Sched != null ) { // Grab the values you need. // // Sched.PaymentId; // Sched.Name; // Sched.Frequency; // Sched.AmountCents; // Sched.FirstPaymentDate; // Sched.TotalTransactions; // Sched.RemainingTransactions; // Sched.Email; // Sched.Address1; // Sched.Address2; // Sched.Address3; // Sched.Address4; // Sched.City; // Sched.State; // Sched.ZipCode;

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 30 of 41

    // Sched.Country; // Sched.Phone; // Sched.Fax; // Sched.CardNumber; // Sched.CardMonth; // Sched.CardYear; // Sched.ItemNumber; // Sched.ItemDescription; // Sched.Comment; // Sched.OrderNumber; } // CRecurringPayment.CPaymentSchedule not null } // iterate the response results } else { // No records found } // checking for records } else { // No records found. } // check for result set } else { // No records found. } // recurring payment information is not null

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 31 of 41

    Using the Skipjack Reporting Example Application The Skipjack Reporting example application is used to demonstrate the Reporting functionality of the Supplementary .NET API. The API Reporting classes include the ability to create a broad range of report types with specified criteria using the Supplementary .NET API. For additional information about Reporting functions see the appropriate section of the Skipjack Integration Guide.

    1. Start the Skipjack Reporting Example Application using the procedure described in the Entering your Account Credentials to Start the Example Applications section.

    2. Select a report type you want to create from the report type drop-down list. Select the appropriate Report

    Fields in the Select and Order Report Fields region and a Start Date and End Date for the records you want to include in your Report. Select any other options as appropriate including the Parse Response check box (if using a CSV report type) to display parsed results. Select the Get Report button to submit the report request to the Skipjack Transaction Network.

    NOTE: You can filter, sort, and order your Report results using the Filter and Sort Report Data fields and controls. For example to search for User Defined fields of a particular name and value enter or paste the field name in the Search By field and, if desired enter a value to filter by in the Search Value field and select the Get Report button.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 32 of 41

    3. When the report request is processed the results are automatically displayed on the Report Results tab,

    as shown below.

    4. You may save the response file (raw response) in Microsoft Excel format by selecting the Save as Excel button.

    5. Select the Report Criteria tab and select the Return to Main button as desired.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 33 of 41

    Code Snippets for the Skipjack Reporting Example Application This section contains code snippets associated with the Skipjack Reporting Example Application. Use these snippets to understand the functionality of the Supplementary .NET API SDK and as an aid to your application development. // Instantiate the CReports object. The constructor accepts the serial number, login serial number, username, password // and the CReports.REPORT_TYPE enum. // CReports Reporter = new CReports( "000111000123", "000837382711", "testUser", "Pss873sJ", CReports.REPORT_TYPE.DEVELOPER_REPORT_TEXT ); // ADD THE FIELDS // Reporter.IncludeSecureInfo = true; Reporter.PostDirect = true; // should be true in most cases // Set page title // Reporter.AddField( CReports.OPTIONAL_FIELDS.sPageTitle, "Test Report Title" ); // Set page heading // Reporter.AddField( CReports.OPTIONAL_FIELDS.sPageHeading, "Test Report Heading" ); // Get as many records as possible (99,999 is the maximum per report request) // Reporter.AddField( CReports.OPTIONAL_FIELDS.sRecsPerPage, "99999" ); // Current page is the first page... // Reporter.AddField( CReports.OPTIONAL_FIELDS.sCurrentPage, "1" ); // Set the start date // Reporter.AddField( CReports.REQUIRED_FIELDS.sMonthStart, "05" ); Reporter.AddField( CReports.REQUIRED_FIELDS.sDayStart, "01" ); Reporter.AddField( CReports.REQUIRED_FIELDS.sYearStart, "2007" ); // Set the end date // Reporter.AddField( CReports.REQUIRED_FIELDS.sMonthEnd, "05" ); Reporter.AddField( CReports.REQUIRED_FIELDS.sDayEnd, "06" ); Reporter.AddField( CReports.REQUIRED_FIELDS.sYearEnd, "2007" ); // Show all transactions in any state // Reporter.ShowTransactions( CReports.TRANSACTION_STATE.ALL ); // Set card types // Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeVisa, true ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeMasterCard, true ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeAmericanExpress, true ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeDiscover, true ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeDiners, false ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeJCB, false ); Reporter.ShowTransactions( CReports.CARD_TYPE.sCardTypeUnknown, false ); // Set status types // Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusArchived, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusAuthorized, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusCredited, true ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusDeleted, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusDenied, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusIdle, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPendAuth, true ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPendCredit, true ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPendDelete, false );

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 34 of 41

    Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPendManualSettle, true ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPendSettle, true ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusPreAuth, false ); Reporter.ShowTransactions( CReports.TRANSACTION_STATUS.sStatusSettled, true ); // Set fields to display and indicate their order // Reporter.ShowField( CReports.SHOW_FIELDS.showID, true, 0 ); Reporter.ShowField( CReports.SHOW_FIELDS.showTransactionDate, true, 1 ); Reporter.ShowField( CReports.SHOW_FIELDS.showOrderNumber, true, 2 ); Reporter.ShowField( CReports.SHOW_FIELDS.showTransactionFilename, true, 3 ); Reporter.ShowField( CReports.SHOW_FIELDS.showStatusTransaction, true, 4 ); Reporter.ShowField( CReports.SHOW_FIELDS.showBatchNumber, true, 5 ); Reporter.ShowField( CReports.SHOW_FIELDS.showApprovalCode, true, 6 ); Reporter.ShowField( CReports.SHOW_FIELDS.showCardType, true, 7 ); Reporter.ShowField( CReports.SHOW_FIELDS.showCCLast5, true, 8 ); Reporter.ShowField( CReports.SHOW_FIELDS.showAmount, true, 9 ); Reporter.ShowField( CReports.SHOW_FIELDS.showCustomerName, true, 10 ); Reporter.ShowField( CReports.SHOW_FIELDS.showAvs, true, 11 ); Reporter.ShowField( CReports.SHOW_FIELDS.showCVV2Result, true, 12 ); Reporter.ShowField( CReports.SHOW_FIELDS.showComment, true, 13 ); Reporter.ShowField( CReports.SHOW_FIELDS.showItemString, true, 14 ); // Order by... // Reporter.SetOrderByField( CReports.ORDER_BY_VALUE.dtTransactionDate ); // Indicate true/false whether or not the results should be parsed. // This optional is only useful/available for CSV/text reports. // Reporter.ParseResponse = true; // Get report data // Reporter.GetReport(); // Raw, unparsed response is available like this.... // // Reporter.OriginalResponse; // // or if the results could be parsed... // CReports.CReportResponse Results = Reporter.ReportResponse; if ( Results != null && Results.NumRecords > 0 ) { CReports.CReportRecord rh = Results.ReportHeader; if ( rh != null ) { // there is always an empty last column so don't even look at it // int num = rh.NumFields - 1; int i = 0; for ( i = 0; i < num; i++ ) { // Retrieve the field/column names // // string FieldName = rh.GetFieldByIndex( i ); } // loop, create columns // Now that we have the columns, lets rip through the // rest of the report data // foreach ( CReports.CReportRecord OneRecord in Results ) { if ( OneRecord != null ) { for ( i = 0; i < num; i++ ) { // Retrieve field value //

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 35 of 41

    string FieldValue = OneRecord.GetFieldByIndex( i ); } // loop through the data values } // got a record } // loop through the report records } // have to have a header row to have anything } // there are records

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 36 of 41

    Using the Skipjack Settlement Batch Operations Example Application The Skipjack Settlement Batch Operations example application is used to demonstrate the Batch Settlement functionality of the Supplementary .NET API. This functionality includes the ability view the status of open Settlement Batches and close the current open Settlement Batch. For additional information about Settlement Batch Operations see the appropriate section of the Skipjack Integration Guide.

    1. Start the Skipjack Settlement Batch Operations Example Application using the procedure described in the Entering your Account Credentials to Start the Example Applications section.

    2. Select the Get Batch Status button to display the details of the current open Settlement Batch for your Skipjack Merchant Account. By default if you enter nothing into the Batch Number, Date From, and Date Thru fields the Settlement Batch details are displayed for the current date. You can select the Show Closed/Deleted check-box to include these types of Settlement Batch records in the results. Alternatively you may enter information into each date field to display Settlement Batch information for specific dates and/or Batch Numbers.

    3. Select the Close Open Batch button to close the current open Settlement Batch.

    http://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 37 of 41

    Code Snippets for Skipjack Settlement Batch Operations Example Application This section contains code snippets associated with the Skipjack Settlement Batch Operations Example Application. Use these snippets to understand the functionality of the Supplementary .NET API SDK and as an aid to your application development.

    Get Batch Settlement Status // Call the static method GetSettlementBatchStatus. // Method accepts the serial number, developer serial number, the isproduction boolean value, // an optional settlement batch ID, optional date from value (MM/DD/YYYY), optional date thru value (MM/DD/YYYY) // and the show deleted/closed boolean value. // CSettlementBatch.CSettlementBatchStatus SettlementInfo = CSettlementBatch.GetSettlementBatchStatus( "000111000123", "999222999111", false, null, null, null, true ); if ( SettlementInfo != null ) { // Retrieve available information from CSettlementBatchStatus object... // // SettlementInfo.OriginalResponse; // SettlementInfo.ErrorCode ); // SettlementInfo.ErrorMessage; // SettlementInfo.NumRecords; if ( SettlementInfo.HasResults() ) { IEnumerator Objects = SettlementInfo.GetEnumerator(); if ( Objects != null ) { while ( Objects.MoveNext() ) { // Iterate the CSettlementRecord objects and retrieve the field values you need. // CSettlementBatch.CSettlementRecord Record = ( CSettlementBatch.CSettlementRecord ) Objects.Current; if ( Record != null ) { // Record.BatchNumber; // Record.BatchStatus; // Record.Status; // Record.OpenedDate; // Record.ClosedDate; // Record.ProcessDate; // Record.StartedDate; // Record.CompletedDate; // Record.TotalTransactions; // Record.AmountProcessed; } // CRecurringPayment.CPaymentSchedule not null } // iterate the response results } else { // No records found } // checking for records } else { // No records found } // check for result set

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 38 of 41

    Close Current Open Batch // Call the static method CloseCurrentOpenBatch. // Method accepts the serial number, developer serial number, and the isproduction boolean value. This method // should only be used with accounts that are set to settle manually and whose settlement batches do not close // automatically each day. // CSettlementBatch.ERROR_CODES err = CSettlementBatch.CloseCurrentOpenBatch( "000111000123", "999222999111", false ); if ( err == CSettlementBatch.ERROR_CODES.SUCCESS ) { // batch successfully closed } else { // could not close open batch...could be because there were no pending transactions to settle in the //batch... }

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 39 of 41

    Frequently Asked Questions

    This section contains the frequently asked questions (and their answers) related to the Supplementary .NET API SDK. Please read this section carefully, along with all other supporting documentation, including the Help file and readme.txt files included with the application before contacting Skipjack Financial Services with your support-related questions.

    How do I obtain an HTML and Developer Serial Number from Skipjack Financial Services so that I can begin application development? To obtain a free Skipjack Development Account from Skipjack Financial Services visit http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|1071218. Alternatively you may call the toll free Skipjack Financial Services support number 1-888-368-8507 and speak to a Skipjack Financial Services support representative to obtain a new Skipjack Development Account. Remember, in order to submit new, Live (Production) transactions (such as Batch File Uploads Authorize) using the Supplementary .NET API SDK you must have a Merchant Account from a financial institution for each card type you are submitting in the Batch File in order to process the Live transactions successfully.

    How do I test my connection to the Skipjack Transaction Network? You can check your connectivity to the Skipjack Transaction Network is functioning properly by simply clicking on or entering the following addresses in your browser URL address field.

    URL to test in Browser Methods Applied

    https://developer.skipjackic.com (Development Environment) https://www.skipjackic.com (Production environment)

    All methods that are not listed below.

    https://batch.skipjack.com Batch uploads only.

    https://ms.skipjackic.com Merchant Services and Reports

    What is causing the Error length serial number (-39) error that I see when I submit a transaction? This error is indicating Invalid Serial Number. Double-check your credentials (Serial Numbers) and resubmit the transaction using your most current credentials. This error also occurs when you are trying to use a HTML Serial Number intended for a Development Account on a Production system, or vice versa. For a complete listing of szResponse codes returned after submitting a transaction to the Skipjack Financial Services network, see the section szReturnCode Response, available from the Skipjack Web site Integration Toolkits link at http://www.skipjack.com/developers.aspx.

    Which Payment Processors are currently supported for the Supplementary .NET API? For a detailed listing of Payment Processors supported, see the Payment Processors Supported by Skipjack Financial Services in the Skipjack Integration Guide.

    Is the DLL included in the SDK a full version or is it just a Development trial version? The DLL (SkipjackRetailAPIExtras.dll) distributed as part of the SDK is a full working version of the SDK that includes all functionality required to perform credit card transactions. You can use this DLL to develop your application to process your financial transactions.

    http://www.skipjack.com/developers.aspx?cmsphid=85844789|7785657|1071218https://developer.skipjackic.com/https://www.skipjackic.com/https://batch.skipjack.com/https://ms.skipjackic.com/http://imgserver.skipjack.com/imgServer/5293710/szReturnCode%20Responses%20and%20Descriptions.pdfhttp://imgserver.skipjack.com/imgServer/5293710/skipjack_integration_guide.pdf

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 40 of 41

    How should the SJLogger class be implemented? The SJLogger class is used by Supplementary .NET API SDK for debugging and troubleshooting purposes. This class defines what data (if any) will be logged into the log file (SkipjackRetailAPI.log) during various activities performed by API. See the SJLogger class information in the Online Help for more detailed information about LogLevel usage. NOTE: The size of the log file will vary depending on the logging level set. When the log level is set to high value, the size of the log file can become large. Please ensure you manually manage or archive log files on your computer.

    Do I need to program URLs into my application or is this handled by the Supplementary .NET API? All the appropriate Skipjack HTTPS URLs have been hard-coded into the DLL. The HTML Serial Number, Developer Serial Number, and isProduction = false/true identify the Skipjack account that will be used for transaction processing.

    Does the Supplementary .NET API SDK support any non .NET languages and do you have any examples I can use? Currently Skipjack Financial Services only supports .NET and the examples available are only for this environment and language. You can integrate your application with other languages by creating an appropriate wrapper or use the included TLB. Note: A standard wrapper that supports VB6, Delphi, PowerBuilder, and JavaScript is currently being developed by Skipjack Financial Services. Contact Skipjack Financial Services for more details if this is required in your implementation.

    See the System Requirements for Using the Supplementary .NET API section for more details. How do I configure my computer to interact with Supplementary .NET API and to function properly using a Proxy Server?

    The applications HTTPS communication can be directed through a proxy by setting the HTTP proxy server name and port. Open Internet Explorer and select the menu path Tools > Internet Options > Connections > LANSettings (Windows XP). Select Use a proxy server check box and select the OK button.

    1. Select the Advanced button to display the Proxy Settings window. Enter the text sjdev2 and 80 into

    the HTTP: and Port fields, as shown below. Select OK to make the changes.

  • 2008 Skipjack Financial Services Skipjack Supplementary .NET API SDK Integration Guide

    Page 41 of 41

    Whats the intended purpose of the Example Applications? The Example Applications installed with the Supplementary .NET API application can be used to demonstrate the functionality of the Supplementary .NET API methods. Used in conjunction with the C# Test Project they may be used to explore how to apply each class can be integrated in your own application.

    How do I review the transactions I have submitted using the Merchant Register or Reports Manager? The Merchant Register and Reports Managers are two Web-based user interfaces that may be used to display transaction data previously submitted for processing. In some cases you can perform additional operations on them using this interface. Some actions, such as enabling certain Skipjack Merchant Account configuration settings, can only be configured using the Merchant Services Register. To view transactions using the Transaction Register (Merchant Register/Transaction Register):

    1. Direct your Web browser to https://secure.skipjack.com. 2. Enter your Merchant Account credentials into the appropriate fields: (Vendor (Login) Serial #, User

    Name, and Password) 3. Select the Merchant Services (Merchant Register access) radio button for the appropriate

    environment, either Live (Production) or Development (Demo), and click on the Login button. 4. On Account Summary page displayed, select the View Register button to display the Transaction

    (Merchant) Register page. 5. Specify the desired dates in the From and To fields and click on the New Register button to display

    the transaction records. The window will refresh with the results returned for your Merchant Account, as shown below.

    NOTE 1: To access the Merchant Register, you must use the credentials that were assigned to your Merchant Account by Skipjack Financial Services when you sign-up for a Development Test Account. NOTE 2: You can also access submitted transactions by date or order number programmatically using the Skipjack Get Status Method. For detailed information about functions performed using the Merchant Register, see the Skipjack Merchant Services Guide.

    https://secure.skipjack.com/http://imgserver.skipjack.com/imgServer/5293710/merchant_user_guide_v2.5.pdfhttp://imgserver.skipjack.com/imgServer/5293710/merchant_user_guide_v2.5.pdfhttp://imgserver.skipjack.com/imgServer/5293710/merchant_user_guide_v2.5.pdf

    Table of ContentsAbout this DocumentCopyright NoticeTrademark NoticeInterchange Qualifications and Transaction RatesPublication HistoryDocumentation ConventionsDefinitions of Variable TypesPermitted Syntax for Variable Fields

    Obtaining Additional Development Information and DocumentationContacting Skipjack Financial Services

    Features Supported by the Supplementary .NET API SDKSystem Requirements for Using the Supplementary .NET API SDK

    Application Development Lifecycle Using the Supplementary .NET APIObtaining and Installing the Supplementary .NET APIFiles, Applications, Documents, and Start Menu Items InstalledInstalling the Supplementary .NET APIUpgrading from a Previously Installed Version of the SDK

    Supplementary .NET API Functional OverviewSupplementary .NET API Class ModelMajor Classes of the Supplementary .NET APIMinor Classes of the Supplementary .NET APIExample ApplicationsEntering your Account Credentials to Start the Example ApplicationsUsing the Skipjack Batch File Processing Example ApplicationCode Snippets for the Skipjack Batch File Processing Example ApplicationBatch Upload Code SnippetGet Batch File Status Code SnippetGet Batch File Status Code SnippetGet Batch File Status Code Snippet

    Using the Skipjack Recurring Payments Example ApplicationCode Snippets for the Skipjack Recurring Payments Example ApplicationAdd Recurring PaymentEdit Recurring PaymentDelete Recurring PaymentGet Recurring Payment Information

    Using the Skipjack Reporting Example ApplicationCode Snippets for the Skipjack Reporting Example ApplicationUsing the Skipjack Settlement Batch Operations Example ApplicationCode Snippets for Skipjack Settlement Batch Operations Example ApplicationGet Batch Settlement StatusClose Current Open Batch

    Frequently Asked QuestionsHow do I obtain an HTML and Developer Serial Number from Skipjack Financial Services so that I can begin application development?How do I test my connection to the Skipjack Transaction Network?What is causing the Error length serial number (-39) error that I see when I submit a transaction?Which Payment Processors are currently supported for the Supplementary .NET API?Is the DLL included in the SDK a full version or is it just a Development trial version?How should the SJLogger class be implemented?Do I need to program URLs into my application or is this handled by the Supplementary .NET API?Does the Supplementary .NET API SDK support any non .NET languages and do you have any examples I can use?Whats the intended purpose of the Example Applications?How do I review the transactions I have submitted using the Merchant Register or Reports Manager?