RecurringBilling Component
Properties Methods Events Configuration Settings Errors
The RecurringBilling component is used to authorize and set up recurring transactions with any of the supported Internet Payment Gateways.
Syntax
nsoftware.InPay.Recurringbilling
Remarks
The RecurringBilling component allows you to use multiple Internet Payment Gateways through one interface and one component. This allows for easy migration from one gateway to another, as well as quick integration into applications or web services.
RecurringBilling Gateway Setup and Required Properties
The RecurringBilling component allows your website to securely perform and setup recurring transactions without the need to redirect to a separate website. All transactions are accomplished through a secure HTTPS Post to any supported gateway. The secure response is received and then stored in the component's response properties. Any website or any stand-alone application can process transactions without the need for a secure server or third-party intervention.
Gateway Setup
The first thing you must do is select one of the many gateways supported by the RecurringBilling component, and set up an account with that gateway. Once you have an account set up with a valid (or test) login Id and password, you can use the RecurringBilling component.
To begin, set the Gateway property to the gateway you wish to use. If this gateway supports an alternate URL to send test transactions to, set the GatewayURL at this time.
Next, set the MerchantLogin (and for some gateways the MerchantPassword). These are supplied by your gateway vendor when you set up an account.
Many gateways have different setup requirements. See RecurringBilling Gateway Setup and Required Properties for details about each gateway's requirements.
Now you are ready to process transactions. For each transaction, you must set either Card or Bank. Most gateways will also require additional properties, such as Address, FirstName, LastName, InvoiceNumber, etc.
Subscription Management
Once all required properties are set, you may create a recurring payment using the specified card or bank data by calling the CreateSubscription method. If the Gateway supports it, you may also Cancel recurring payments with the CancelSubscription method. Recurring payments that need to be changed may be updated with the UpdateSubscription method.
The following gateways are supported by the RecurringBilling component:
Gateway | Home page |
No Gateway (0) | n/a |
Authorize.Net AIM (1) | http://www.authorize.net |
eProcessing Transparent Database Engine (2) | http://www.eProcessingNetwork.com |
iTransact RediCharge HTML (4) | http://www.itransact.com |
Verisign PayFlow Pro (6) | https://www.paypal.com/webapps/mpp/payflow-payment-gateway |
USA ePay CGI Transaction Gateway (7) | http://www.usaepay.com |
Plug 'n Pay (8) | http://www.plugnpay.com |
Planet Payment iPay (9) | http://planetpayment.com/ |
Merchant Anywhere (Transaction Central) (15) | http://www.merchantanywhere.com/ |
SkipJack (16) | http://www.skipjack.com |
Chase Paymentech Orbital Gateway V5.7 (23) | http://www.chasepaymentech.com |
LinkPoint (24) | http://www.linkpoint.com |
Moneris eSelect Plus Canada (25) | http://www.moneris.com |
NetworkMerchants Direct-Post API (28) | http://www.nmi.com/ |
TransFirst Transaction Central Classic (formerly PRIGate) (30) | www.transfirst.com |
Merchant Partners (Transaction Engine) (31) | http://www.merchantpartners.com/ |
First Data Global Gateway (Linkpoint) (33) | http://www.firstdata.com |
YourPay (Linkpoint) (34) | http://www.yourpay.com |
ACH Payments AGI (35) | http://www.ach-payments.com |
Payments Gateway AGI (36) | https://www.paymentsgateway.net/ |
Cyber Source SOAP API (37) | http://www.cybersource.com |
eWay XML API (Australia) (38) | http://www.eway.com.au/ |
Chase Merchant Services (Linkpoint) (41) | http://www.chase.com |
Thompson Merchant Services NexCommerce (iTransact mode) (42) | http://www.thompsonmerchant.com |
TransFirst Transaction Central (44) | http://www.transfirst.com. (This is different from TransFirst eLink, supported above. The TransactionCentral gateway is also used by MerchantAnywhere and PRIGate) |
Elavon/NOVA/My Virtual Merchant (49) | http://www.myvirtualmerchant.com |
Moneris eSelect Plus USA (52) | http://www.moneris.com |
Beanstream Process Transaction API (53) | http://beanstream.com |
Verifi Direct-Post API (54) | http://www.verifi.com |
Intuit QuickBooks Merchant Services (QBMS) (61) | http://payments.intuit.com/ |
Litle Online Gateway (63) | http://www.litle.com/ |
PayTrace Payment Gateway (70) | http://www.paytrace.com/ |
TransNational Bankcard (74) | http://www.tnbci.com/ |
Payscape (83) | http://www.payscape.com |
Authorize.NET CIM (85) | http://www.authorize.net |
WorldPay US Link Gateway (87) | http://www.worldpay.com/us |
3DSI Payment WorkSuite (88) | http://www.3dsi.com/ |
First Data PayPoint (90) | https://www.firstdata.com/en_us/customer-center/financial-institutions/paypoint.html |
Converge (93) | http://www.myvirtualmerchant.com |
PhoeniXGate Gateway (97) | http://www.phoenixmanagednetworks.com/ |
Repay Gateway (98) | http://www.repayonline.com/ |
PayWiser (98) | http://www.paywiser.si/ |
BlueSnap Gateway (104) | https://home.bluesnap.com/ |
BASYS Gateway (106) | https://basyspro.com/ |
Square (108) | https://www.squareup.com |
GlobalOnePay (110) | https://www.globalonepay.com/ |
Property List
The following is the full list of the properties of the component with short descriptions. Click on the links for further details.
Card | Contains the customer's credit card information. |
Customer | Contains the customer's name, address, and other identifying information. |
ECheckBank | Bank account and routing information for an electronic check transaction. |
ECheckPaymentType | The type of check payment request (commonly referred to as SEC Code). |
Gateway | Gateway to process transactions with. |
GatewayURL | Default URL for a specific Gateway . |
InvoiceNumber | Merchant-generated invoice number. |
MerchantLogin | Merchant's Gateway login. |
MerchantPassword | Merchant's Gateway password. |
PaymentSchedule | This property is used to specify the payment schedule for a recurring billing. |
Proxy | A set of properties related to proxy access. |
Response | Contains the response to the recurring transaction. |
ShippingInfo | Contains the customer's shipping name, address, and other identifying information. |
SpecialFields | A list of additional fields to send in the request. |
SSLAcceptServerCert | Instructs the component to unconditionally accept the server certificate that matches the supplied certificate. |
SSLCert | The certificate to be used during SSL negotiation. |
SSLServerCert | The server certificate for the last established connection. |
SubscriptionDesc | Description of recurring subscription. |
SubscriptionDetails | Contains the recurring subscription details. |
SubscriptionName | The name of the recurring subscription or profile. |
TestMode | Turns test mode on and off for transactions sent to the current Gateway . |
Timeout | A timeout for the component. |
TransactionId | Merchant-generated transaction Id used for all transactions. |
Method List
The following is the full list of the methods of the component with short descriptions. Click on the links for further details.
AddSpecialField | Adds a special field name and the corresponding value. |
CancelSubscription | Cancels or deletes a recurring payment subscription. |
Config | Sets or retrieves a configuration setting . |
CreateSubscription | Creates a new recurring subscription. |
DoEvents | Processes events from the internal message queue. |
GetResponseVar | Parses additional information out of the response. |
GetSubscriptionStatus | Retrieves the status of a recurring payment subscription. |
Interrupt | Interrupts the current action. |
ResetSpecialFields | Resets all special fields to the default settings. |
UpdateSubscription | Updates a recurring payment subscription. |
Event List
The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
SSLServerAuthentication | Fired after the server presents its certificate to the client. |
SSLStatus | Shows the progress of the secure connection. |
Configuration Settings
The following is a list of configuration settings for the component with short descriptions. Click on the links for further details.
AuthNetCIMGuestProfile | Specifies whether a profile is a guest profile or a normal profile. |
AuthNetCIMRequestType | The request type to send for the Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileId | The Payment Profile ID assigned by Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileCount | The number of Payment Profiles assigned to a customer profile within the Authorize.NET CIM gateway. |
AuthNetCIMPaymentProfileIndex | Parses the Payment Profile contained at the specified index within a GetSusbcriptionStatus response. |
AuthNetCIMMaskedCardNumber | The masked card number returned for the payment profile at the specified index. |
AuthNetCIMShippingAddressId | The Shipping Address ID assigned by Authorize.NET CIM gateway. |
AuthNetCIMShippingAddressCount | The number of Shipping Addresses assigned to a customer profile within the Authorize.NET CIM gateway. |
AuthNetCIMShippingAddressIndex | Parses the Shipping Address contained at the specified index within a GetSusbcriptionStatus response. |
AuthNetGetSubscriptionDetails | Specifies whether a call to GetSubscriptionStatus will return the details of the subscription or just the status. |
AuthNetOpaqueDescriptor | An Authorize.Net opaque data descriptor. |
AuthNetOpaqueValue | An Authorize.Net opaque data value. |
BASYSRequestType | The request type for the BASYS gateway. |
BASYSCustomerStatus | Indicates the Customer Status. |
BASYSPaymentType | Indicates the Payment Type. |
BASYSTokenMode | Indicates the Token Type. |
BASYSToken | BASYS Gateway Token Value. |
BASYSCustomerKey | BASYS Gateway Customer Key. |
BASYSCardInfoKey | BASYS Gateway Credit Card Info Key. |
BASYSCheckInfoKey | BASYS Gateway Check Info Key. |
BASYSContractKey | BASYS Gateway Contract Key. |
BASYSContractID | BASYS Gateway Contract ID. |
BASYSNextBillingDate | BASYS Gateway Next Billing Date. |
BASYSNumberOfDays | Number of days to be added to the next billing date. |
BeanstreamUsername | The Username used for authentication with the Beanstream gateway. |
BlueSnapCardCount | How many card payment sources the last retrieved vaulted shopper has. |
BlueSnapCardIndex | Determines which card payment source the component's fields are populated for currently. |
BlueSnapGetToken | Retrieves a new hosted payment fields token (pfToken) from BlueSnap. |
BlueSnapRequestType | The request type for the BlueSnap gateway. |
BlueSnapEnterpriseUdfs | User-Defined Fields (UDFs) to send when updating a BlueSnap vaulted shopper. |
BlueSnapVaultedShopperId | BlueSnap gateway vaulted shopper ID. |
CardLast4Digits | The last 4 digits of a credit card. |
CardPresent | Specifies whether the card is present during the transaction. |
CardToken | The credit card token. |
CardType | Type of credit card being used in this transaction. |
CheckRoutingNumber | Determines whether to perform a checksum test on the RoutingNumber. |
CheckNumber | Check Number. |
CompanyName | The Customer's Company Name. |
CustomerPassword | The Customer's Password. |
CustomerUsername | The Customer's Username. |
CyberSourceDeleteSubscription | Whether subscriptions should be deleted when CancelSubscription is called. |
DateFormat | The format of the date properties. |
EscapeXML | Automatically escape data within XML tags. |
EwayCustomerId | The Customer Id used to authenticate with the Eway gateway. |
EwayInitialDate | The date of the initial payment for the Eway gateway. |
EwayTransactionType | The Transaction Type for the Eway gateway. |
FirstDataPayPointAgreedToTerms | Specifies whether the customer has approved the registration process and agreed to the terms for the FirstDataPayPoint gateway. |
FirstDataPayPointTransactionType | The Transaction Type for the FirstDataPayPoint gateway. |
GlobalOnePayPermittedTerminals | A list of the terminals permitted to use a GlobalOnePay secure card. |
GoToBillingTransactionType | The Transaction Type for the GoToBilling gateway. |
LicenseDOB | Customer's Date of Birth as indicated on his drivers license. |
LicenseNumber | Customer's driver's license number. |
LicenseState | State in which customer's driver's license was issued. |
LitleCardholderId | Describes the method used to identify the cardholder at the point of sale for the Litle gateway. |
LitleSubscriptionAggregate | Used to specify an XML aggregate for Subscription Create and Update transactions within the Litle gateway. |
LitleTransactionType | The Transaction Type for the Litle gateway. |
LitleTrialFrequency | Used to specify a trial frequency for the Litle gateway. |
MerchantPartnersLast4Digits | The last 4 digits of the account number for a transaction processed via the MerchantPartners or WorldPay Link gateways. |
MerchantPartnersReaderType | The reader type used to read and encrypt a swiped card for the MerchantPartners or WorldPay Link gateways. |
PaymentWorkSuiteTransactionType | The transaction type to send for the Payment WorkSuite gateway. |
PayTraceTransactionType | The Transaction Type for the PayTrace gateway. |
PayWiserRequestType | The request type for the PayWiser gateway. |
PayWiserPlanPattern | PayWiser plan pattern for creating a recurring plan. |
PayWiserRetryPattern | PayWiser retry pattern for retrying failed payments. |
PayWiserPaymentHour | Payment hour. |
PayWiserCardToken | PayWiser Gateway Card Token Value. |
PayWiserTokenReferenceId | PayWiser Gateway Token Reference Id. |
PayWiserRecurringPlanId | PayWiser Recurring Plan Id. |
PhoeniXGateRequestType | The request type for the PhoeniXGate gateway. |
PhoeniXGateCustomerStatus | Indicates the Customer Status. |
PhoeniXGatePaymentType | Indicates the Payment Type. |
PhoeniXGateTokenMode | Indicates the Token Type. |
PhoeniXGateToken | PhoeniXGate Gateway Token Value. |
PhoeniXGateCustomerKey | PhoeniXGate Gateway Customer Key. |
PhoeniXGateCardInfoKey | PhoeniXGate Gateway Credit Card Info Key. |
PhoeniXGateCheckInfoKey | PhoeniXGate Gateway Check Info Key. |
PhoeniXGateContractKey | PhoeniXGate Gateway Contract Key. |
PhoeniXGateContractID | PhoeniXGate Gateway Contract ID. |
PhoeniXGateNextBillingDate | PhoeniXGate Gateway Next Billing Date. |
PhoeniXGateNumberOfDays | Number of days to be added to the next billing date. |
PlanetPaymentFrequencyDate | The date of the month that a recurring payment should occur for the Planet Payment gateway. |
PlanetPaymentFrequencyDay | The day that a recurring payment should occur for the Planet Payment gateway. |
PlanetPaymentFrequencyMonth | The month that a recurring payment should occur for the Planet Payment gateway. |
QBMSTransactionType | The Transaction Type for the QBMS gateway. |
RepayRequestType | The request type for the Repay gateway. |
RepayCustomerStatus | Indicates the Customer Status. |
RepayPaymentType | Indicates the Payment Type. |
RepayTokenMode | Indicates the Token Type. |
RepayToken | Repay Gateway Token Value. |
RepayCustomerKey | Repay Gateway Customer Key. |
RepayCardInfoKey | Repay Gateway Credit Card Info Key. |
RepayCheckInfoKey | Repay Gateway Check Info Key. |
RepayContractKey | Repay Gateway Contract Key. |
RepayContractID | Repay Gateway Contract ID. |
RepayNextBillingDate | Repay Gateway Next Billing Date. |
RepayNumberOfDays | Number of days to be added to the next billing date. |
SkipJackStatusIndex | Gets subscription details at the specified status index. |
SquareCustomerCardCount | The number of cards saved to the Square customer profile. |
SquareCustomerCardId | The Id of a card saved to a Square customer profile. |
SquareCustomerCardIndex | Which card's details to populate the component with from the retreived Square customer profile. |
SquareRequestType | What type of Square customer data to create or delete. |
TaxId | Company's Tax Id or a Customer's Social Security Number. |
TerminalCapability | The capability of the terminal that is used to submit the transaction. |
TerminalId | Terminal Id value sent in the transaction. |
TerminalType | The terminal type that is used to submit the transaction. |
AuthNetShipToCompany | The name of the company associated with the customer's shipping address. |
CardIssueNumber | Special Issue Number used for Switch and Solo cards. |
CardStartMonth | Used for some international cards. |
CardStartYear | Used for some international cards. |
ConvenienceFee | The total convenience fee charged for a transaction. |
CyberSourceXMLEscape | Determines whether to XML escape the CyberSource gateway request field values. |
ECI | Electronic Commerce Indicator. |
HashAlgorithm | Algorithm used for hashing. |
HashSecret | Security key used to generate a hash for gateways supporting such functionality. |
MerchantCode | A gateway-supplied merchant number, code, or Id. |
MITFlag | For the MIT framework - Used to indicate that a transaction is merchant initiated. |
MITPriorTransId | For the MIT framework - Used to specify a prior transaction id to be referenced in a merchant initiated transaction. |
MITType | For the MIT framework - Indicates the type of transaction being requested in a Merchant-Initiated Transaction (MIT). |
MyVirtualMerchantUserId | The MyVirtualMerchant user Id as configured on VirtualMerchant. |
NetBillingVersion | The Version to be sent in the User-Agent heading of a NetBilling gateway request. |
OrbitalConnectionPassword | Orbital Connection Password field used by the Orbital gateway. |
OrbitalConnectionUsername | Orbital Connection Username field used by the Orbital gateway. |
OrbitalCustomerProfileFromOrderInd | Customer Profile Number generation Options for the Orbital gateway. |
OrbitalCustomerProfileOrderOverrideInd | Indicator to specify how the CustomerId is leveraged to populate other data sets for the Orbital gateway. |
PaymentWorkSuiteClientCode | The 3DSI assigned client code sent in a request to the PaymentWorksuite gateway. |
PaymentWorkSuiteLocationCode | The 3DSI assigned location code sent in a request to the PaymentWorksuite gateway. |
PaymentWorkSuiteMerchantCode | The 3DSI assigned merchant code sent in a request to the PaymentWorksuite gateway. |
PayTraceIntegratorId | Used to specify the Integrator Id value assigned by the PayTrace gateway. |
PayerIP | The IP address of the payer. |
RawRequest | Returns the data that was sent to the gateway. |
RawResponse | Returns the data that was received from the gateway. |
StoreCardOnFile | For the Stored Credentials framework - Used to indicate that the merchant will be storing the customer's card on file (COF). |
UseCardOnFile | For the Stored Credentials framework - Used to indicate that the merchant is using stored card on file (COF) information for the request. |
ValidateCardNumber | Determines whether data set to the CardNumber or MagneticStripe property is validated. |
XPath | Provides a way to point to a specific element in the returned XML or JSON response. |
XText | The text of the current element. |
XElement | The name of the current element. |
XChildrenCount | The number of child elements of the current element. |
XChildrenName[x] | The name of the child element. |
XChildrenXText[x] | The inner text of the child element. |
AcceptEncoding | Used to tell the server which types of content encodings the client supports. |
AllowHTTPCompression | This property enables HTTP compression for receiving data. |
AllowHTTPFallback | Whether HTTP/2 connections are permitted to fallback to HTTP/1.1. |
AllowNTLMFallback | Whether to allow fallback from Negotiate to NTLM when authenticating. |
Append | Whether to append data to LocalFile. |
Authorization | The Authorization string to be sent to the server. |
BytesTransferred | Contains the number of bytes transferred in the response data. |
EncodeURL | If set to true the URL will be encoded by the component. |
FollowRedirects | Determines what happens when the server issues a redirect. |
GetOn302Redirect | If set to true the component will perform a GET on the new location. |
HTTPVersion | The version of HTTP used by the component. |
HTTP2HeadersWithoutIndexing | HTTP2 headers that should not update the dynamic header table with incremental indexing. |
IfModifiedSince | A date determining the maximum age of the desired document. |
KeepAlive | Determines whether the HTTP connection is closed after completion of the request. |
LogLevel | The level of detail that is logged. |
MaxHeaders | Instructs component to save the amount of headers specified that are returned by the server after a Header event has been fired. |
MaxHTTPCookies | Instructs component to save the amount of cookies specified that are returned by the server when a SetCookie event is fired. |
MaxRedirectAttempts | Limits the number of redirects that are followed in a request. |
NegotiatedHTTPVersion | The negotiated HTTP version. |
OtherHeaders | Other headers as determined by the user (optional). |
ProxyAuthorization | The authorization string to be sent to the proxy server. |
ProxyAuthScheme | The authorization scheme to be used for the proxy. |
ProxyPassword | A password if authentication is to be used for the proxy. |
ProxyPort | Port for the proxy server (default 80). |
ProxyServer | Name or IP address of a proxy server (optional). |
ProxyUser | A user name if authentication is to be used for the proxy. |
TransferredData | The contents of the last response from the server. |
TransferredDataLimit | The maximum number of incoming bytes to be stored by the component. |
TransferredHeaders | The full set of headers as received from the server. |
UseChunkedEncoding | Enables or Disables HTTP chunked encoding for transfers. |
ChunkSize | Specifies the chunk size in bytes when using chunked encoding. |
UsePlatformHTTPClient | Whether or not to use the platform HTTP client. |
UserAgent | Information about the user agent (browser). |
KerberosSPN | The Service Principal Name for the Kerberos Domain Controller. |
ConnectionTimeout | Sets a separate timeout value for establishing a connection. |
FirewallAutoDetect | Tells the component whether or not to automatically detect and use firewall system settings, if available. |
FirewallHost | Name or IP address of firewall (optional). |
FirewallListener | If true, the component binds to a SOCKS firewall as a server (IPPort only). |
FirewallPassword | Password to be used if authentication is to be used when connecting through the firewall. |
FirewallPort | The TCP port for the FirewallHost;. |
FirewallType | Determines the type of firewall to connect through. |
FirewallUser | A user name if authentication is to be used connecting through a firewall. |
KeepAliveTime | The inactivity time in milliseconds before a TCP keep-alive packet is sent. |
KeepAliveInterval | The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received. |
Linger | When set to True, connections are terminated gracefully. |
LingerTime | Time in seconds to have the connection linger. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The port in the local host where the component binds. |
MaxLineLength | The maximum amount of data to accumulate when no EOL is found. |
MaxTransferRate | The transfer rate limit in bytes per second. |
ProxyExceptionsList | A semicolon separated list of hosts and IPs to bypass when using a proxy. |
TCPKeepAlive | Determines whether or not the keep alive socket option is enabled. |
UseIPv6 | Whether to use IPv6. |
UseNTLMv2 | Whether to use NTLM V2. |
CloseStreamAfterTransfer | If true, the component will close the upload or download stream after the transfer. |
TcpNoDelay | Whether or not to delay when sending packets. |
CACertFilePaths | The paths to CA certificate files when using Mono on Unix/Linux. |
LogSSLPackets | Controls whether SSL packets are logged when using the internal security API. |
ReuseSSLSession | Determines if the SSL session is reused. |
SSLCipherStrength | The minimum cipher strength used for bulk encryption. |
SSLEnabledProtocols | Used to enable/disable the supported security protocols. |
SSLIncludeCertChain | Whether the entire certificate chain is included in the SSLServerAuthentication event. |
SSLProvider | The name of the security provider to use. |
SSLSecurityFlags | Flags that control certificate verification. |
SSLCACerts | A newline separated list of CA certificate to use during SSL client authentication. |
SSLEnabledCipherSuites | The cipher suite to be used in an SSL negotiation. |
TLS12SignatureAlgorithms | Defines the allowed TLS 1.2 signature algorithms when UseInternalSecurityAPI is True. |
TLS12SupportedGroups | The supported groups for ECC. |
TLS13KeyShareGroups | The groups for which to pregenerate key shares. |
TLS13SupportedGroups | The supported groups for (EC)DHE key exchange. |
TLS13SignatureAlgorithms | The allowed certificate signature algorithms. |
AbsoluteTimeout | Determines whether timeouts are inactivity timeouts or absolute timeouts. |
FirewallData | Used to send extra data to the firewall. |
InBufferSize | The size in bytes of the incoming queue of the socket. |
OutBufferSize | The size in bytes of the outgoing queue of the socket. |
GUIAvailable | Tells the component whether or not a message loop is available for processing events. |
UseBackgroundThread | Whether threads created by the component are background threads. |
UseInternalSecurityAPI | Tells the component whether or not to use the system security libraries or an internal implementation. |