ExpressCheckout Component [PayPal Integrator V3]
Properties
Methods
Events
Configuration Settings
Express Checkout allows customers the option to pay you quickly through PayPal.
NOTE: What follows is a very short description of the component interfaces.
For more information, please consult the help files that come with the respective package.
Remarks
The ExpressCheckout component is used when a customer purchases an item from a
merchant's website, and decides to use PayPal to pay for it.
There are three different methods, SetCheckout, CheckoutPayment, and
GetCheckoutDetails, which are used together to complete a transaction.
At the time of this writing, in order to use this component you must have a PayPal
Business account to accept direct payments,
and you must apply to have "Website Payments Pro" activated on your account.
Once that is accomplished and you have set up API access, accepting credit cards is simple.
The first thing a merchant does when a customer decides to pay by PayPal, is to send the
customer's email address to PayPal, and receive a transaction token (returned in the
ResponseToken property).
After receiving the token, you must redirect the customer to PayPal's express checkout URL,
along with the ResponseToken you just received. After the customer pays,
he will be returned to the ReturnURL you specified in the request.
For example:
component.OrderTotal = "88.88"
component.ReturnURL = "http://localhost"
component.CancelURL = "http://localhost"
component.PaymentAction = aSale
component.BuyerEmail = "IBizTester@nsoftware.com"
component.SetCheckout()
'Now redirect the buyer:
If (component.Ack == "success") Then
Redirect("https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=" + component.ResponseToken)
End If
After the buyer is returned to your ReturnURL, you must acquire the PayerId by calling the GetCheckoutDetails method with the token returned above. Additional data about the buyer will also be returned, such as name, address, status within the PayPal system, and phone number. For example:
component.GetCheckoutDetails("EC-9EN563578B985082M") ' token value from above
PayerId now contains the value required to complete the transaction, using the CheckoutPayment method. For example:
component.PaymentAction = aSale
component.Token = "EC-9EN563578B985082M" ' token value from above
component.OrderTotal = "88.88"
component.CheckoutPayment()
If you submitted a PaymentAction of aSale, this will finalize the transaction and transfer funds to your PayPal account. However, if the PaymentAction is set to aAuthorization you will need to use the REAUTHCAPTURE component to capture the transaction.
If you submitted a PaymentAction of aSale, this will finalize the transaction and transfer funds to your PayPal account. However, if the PaymentAction is set to aAuthorization you will need to use the REAUTHCAPTURE component to capture the transaction.
Property List
The following is the full list of the properties of the component with short
descriptions. Click on the links for further details.
| |
| Ack | Acknowledgement code received from PayPal. |
| BillingAgreementCount | The number of records in the BillingAgreement array. |
| BillingAgreement | BillingAgreements is an array that contains a list of billing agreements to be created. |
| BuyerEmail | Buyer's email address. |
| CancelURL | URL to which the customer is returned if he decides not to pay with PayPal. |
| ContactPhone | Payer's contact telephone number. |
| CurrencyCode | Type of currency in which you are accepting payments. |
| FirewallAutoDetect | This property tells the component whether or not to automatically detect and use firewall system settings, if available. |
| FirewallType | This property determines the type of firewall to connect through. |
| FirewallHost | This property contains the name or IP address of firewall (optional). |
| FirewallPassword | This property contains a password if authentication is to be used when connecting through the firewall. |
| FirewallPort | This property contains the TCP port for the firewall Host . |
| FirewallUser | This property contains a user name if authentication is to be used connecting through a firewall. |
| Idle | The current status of the component. |
| InvoiceNumber | Your own unique invoice or tracking number. |
| ItemCount | The number of records in the Item arrays. |
| ItemAmount | Amount of charged on payment. |
| ItemDescription | Paypal item description for the shopping cart. |
| ItemName | Name of the item purchased. |
| ItemNumber | Item number set by the merchant. |
| ItemOptions | Paypal item options for the shopping cart. |
| ItemQuantity | Quantity of items ordered. |
| ItemSalesTax | Amount of tax charged on payment. |
| OrderDescription | Description of items the customer is purchasing. |
| OrderTotal | The total cost of the order to the customer. |
| Password | Password for communicating with PayPal. |
| PayerBusiness | Payer's business email address. |
| PayerCity | Payer's city name. |
| PayerCountryCode | Payer's country code. |
| PayerEmail | Email address of the payer. |
| PayerFirstName | Payer's first name. |
| PayerLastName | Payer's last name. |
| PayerState | Payer's state or province name. |
| PayerStatus | Indicates whether the payer is verified or not. |
| PayerStreet1 | Payer's street address (first line). |
| PayerStreet2 | Payer's street address (second line). |
| PayerZip | Payer's United States ZIP code or other country-specific postal code. |
| PayerId | Unique encrypted PayPal customer account number. |
| PaymentDate | This is the time/date stamp of payment. |
| PaymentExchangeRate | Exchange rate if a currency conversion occurred. |
| PaymentFeeAmount | PayPal fee amount charged for the transaction. |
| PaymentGrossAmount | The final amount charged. |
| PaymentType | Indicates whether the payment is instant or delayed. |
| PaymentPendingReason | The reason the payment is pending. |
| PaymentSettleAmount | Amount deposited in your PayPal account after a currency conversion. |
| PaymentStatus | Status of the payment. |
| PaymentTaxAmount | Tax charged on the transaction. |
| PaymentTransactionId | Unique transaction ID of the payment. |
| PaymentTransactionType | The type of transaction. |
| PaymentAction | How you want to obtain payment. |
| ProxyAuthScheme | This property is used to tell the component which type of authorization to perform when connecting to the proxy. |
| ProxyAutoDetect | This property tells the component whether or not to automatically detect and use proxy system settings, if available. |
| ProxyPassword | This property contains a password if authentication is to be used for the proxy. |
| ProxyPort | This property contains the TCP port for the proxy Server (default 80). |
| ProxyServer | If a proxy Server is given, then the HTTP request is sent to the proxy instead of the server otherwise specified. |
| ProxySSL | This property determines when to use SSL for the connection to the proxy. |
| ProxyUser | This property contains a user name, if authentication is to be used for the proxy. |
| ResponseToken | The time-stamped token value. |
| ReturnURL | URL to which the customer's browser is returned after choosing to pay with PayPal. |
| ShippingTotal | Total shipping costs for this order. |
| Signature | Value to use with PayPal's Signature Authentication scheme. |
| SSLAcceptServerCertEncoded | The SSL certificate (PEM/base64 encoded). |
| SSLCertEncoded | The SSL certificate (PEM/base64 encoded). |
| SSLCertStore | The name of the certificate store for the client certificate. |
| SSLCertStorePassword | If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store. |
| SSLCertStoreType | The type of certificate store for this certificate. |
| SSLCertSubject | The subject of the certificate used for client authentication. |
| SSLServerCertEncoded | The SSL certificate (PEM/base64 encoded). |
| TaxTotal | Sum of tax for all items included in this order. |
| Timeout | A timeout for the component. |
| Token | This property is used to reference a specific Express Checkout transaction in the PayPal network. |
| URL | URL all PayPal transactions are posted to. |
| User | User name for communicating with Paypal. |
Method List
The following is the full list of the methods of the component with short
descriptions. Click on the links for further details.
| |
| AddCustomField | This adds a custom name-value pair to be sent with the next request. |
| CheckoutPayment | Either obtain payment for a final sale, or request authorization for later capture of payment. |
| Config | Sets or retrieves a configuration setting. |
| DoEvents | Processes events from the internal message queue. |
| GetCheckoutDetails | Returns information about the customer, including name and address on file with PayPal. |
| Interrupt | Interrupt the current method. |
| Reset | Reset the internal state of the component and all properties to their default values. |
| SetCheckout | Indicates to PayPal that you are using Express Checkout to obtain payment from your customer. |
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.
| |
| ButtonSource | Additional information for identifying transactions. |
| CurrencyCode | Type of currency in which you are accepting payments. |
| Custom | A free-form field for your own use. |
| HandlingTotal | Total handling costs for this order. |
| ItemTotal | Sum of cost of all items in this order. |
| LocaleCode | Locale of pages displayed by PayPal during Express Checkout. |
| NotifyURL | Instant Payment Notification (IPN) URL. |
| ShipToCity | Payer's shipping city. |
| ShipToCountryCode | Payer's shipping country code. |
| ShipToName | Payer's shipping name. |
| ShipToPayerAddress | Shipping address same as billing address. |
| ShipToPhoneNumber | Payer's shipping phone number. |
| ShipToState | Payer's shipping state. |
| ShipToStreet | First line of the payer's shipping street address. |
| ShipToStreet2 | Second line of the payer's shipping street address. |
| ShipToZip | Payer's shipping postal code. |
| PaymentProtectionEligibility | If the PaymentPendingReason is PaymentReview this will return the protection in force for the transaction. |
| AuthorizingAccount | Authorizing Account Email Address for third-party API access. |
| Build | Returns the Build number contained in the response. |
| Request | Returns the raw request sent to the server. |
| Response | Returns the full response. |
| ResponseVersion | Returns the Version number contained in the response. |
| Version | Allows the user to set the Version number in the request. |
| AcceptEncoding | Used to tell the server which types of content encodings the client supports. |
| AllowHTTPCompression | This property enables HTTP compression for receiving data. |
| Authorization | The Authorization string to be sent to the server. |
| EncodeURL | If set to true the URL will be encoded by the component. |
| GetOn302Redirect | If set to true the component will perform a GET on the new location. |
| HTTPVersion | The version of HTTP used by the component. |
| IfModifiedSince | A date determining the maximum age of the desired document. |
| KeepAlive | Determines whether the HTTP connection is closed after completion of the request. |
| 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. |
| 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. |
| TransferredDataLimit | The maximum number of incoming bytes to be stored by the component. |
| UsePlatformHTTPClient | Whether or not to use the platform HTTP client. |
| UserAgent | Information about the user agent (browser). |
| UseWinInet | If set, the WinInet API is used for retrieving the URL. |
| UseWinInetCookies | Controls whether to send and accept cookies when making HTTP requests through WinInet. |
| MaxLineLength | The maximum amount of data to accumulate when no EOL is found. |
| 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;. |
| FirewallUser | A user name if authentication is to be used connecting through a firewall. |
| FirewallType | Determines the type of firewall to connect through. |
| TcpNoDelay | Whether or not to delay when sending packets. |
| 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. |
| SSLProvider | The name of the security provider to use. |
| SSLSecurityFlags | Flags that control certificate verification. |
| OpenSSLCADir | The path to a directory containing CA certificates. |
| OpenSSLCAFile | Name of the file containing the list of CA's trusted by your application. |
| OpenSSLCipherList | A string that controls the ciphers to be used by SSL. |
| OpenSSLPrngSeedData | The data to seed the pseudo random number generator (PRNG). |
| 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. |
| CodePage | The system code page used for Unicode to Multibyte translations. |