AdaptivePay Class
Properties Methods Events Configuration Settings Errors
The AdaptivePay component is used to make simple payments, chained payments, or parallel payments. These payments can be explicitly approved, preapproved, or implicitly approved.
Syntax
inpaypal.adaptivepay()
Remarks
In an adaptive payment, the sender and recipient refer to the sender and receivers of funds, not the originator and recipient of the payment request. In the case of a simple payment, the recipient (merchant) sends the payment request to the sender (the merchant's customer), who then logs into PayPal and approves the transaction.
Chained and parallel payments are only slightly more complicated. In a parallel payment the sender makes a payment to multiple different recipients in one request. For instance, take a shopping cart that aggregates items from different merchants. When the customer approves the payment request he sees how his payment is being split up between several different merchants.
However, in a chained payment the customer sees only the primary recipient, but behind the scenes multiple recipients receive money. For instance, if you have your products drop-shipped from a warehouse off-site, you can transfer the shipping portion of the payment to them immediately, or you can immediately pay a commission to your sales representative.
This is useful because even though multiple recipients are receiving funds, you are only charged PayPal fees for one transaction.
To make a payment, set at least one Recipients (RecipientEmail and RecipientAmount), the CurrencyCode, CancelURL, and ReturnURL, and then call Pay. To make a parallel payment, set multiple Recipients and to make a chained payment make one (and only one) of the Recipients primary by setting the RecipientPrimary property to True.
For implicit approval, set the SenderEmail property. If you have a Preapproval set up, you can use the preapproval to avoid explicit approval. In that case set the PreApprovalKey and PreApprovalPIN properties instead.
If you need to change any default payment settings, use the CreatePayment method instead. Pass the PaymentKey you receive to the SetPaymentOptions method to update the default payment settings for that transaction. Then call ExecutePayment once you're ready to fulfill the payment.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
Ack | Acknowledgement code received from PayPal. |
AllowedFundingTypes | Specifies the allowed funding types for the payment. |
ApplicationId | Your application's identification, which is issued by PayPal. |
AuthorizingAccount | Third-party permission specification. |
CancelURL | URL the sender is redirected to upon canceling payment approval. |
ClientDetailsApplication | Your application's identification. |
ClientDetailsCustomerId | Your identification for this sender. |
ClientDetailsCustomerType | Your identification of the type of customer. |
ClientDetailsDeviceId | Sender's device Id. |
ClientDetailsGeoLocation | Sender's geographic location. |
ClientDetailsIPAddress | Sender's IP address. |
ClientDetailsModel | A sub-identification of the application. |
ClientDetailsPartnerName | Your organization's name or Id. |
CurrencyCode | The currency being used for this payment. |
DeviceId | Client's device ID. |
DeviceIP | Client's IP address. |
FeesPayer | The payer of the PayPal fees. |
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. |
Memo | A note associated with the payment. |
NotificationURL | The URL to which you want all IPN messages for this payment to be sent. |
Password | Password for communicating with PayPal. |
PaymentKey | Token returned by Paypal, used to identify the transaction. |
PaymentOptionsCountryCode | The two-character country code of the home country of the end consumer. |
PaymentOptionsCustomerId | The unique identifier assigned to the consumer by the institution. |
PaymentOptionsDisplayName | The full name of the customer as known by the institution. |
PaymentOptionsEmail | The email address of the consumer as known by the institution. |
PaymentOptionsFirstName | The first name of the consumer as known by the institution. |
PaymentOptionsHeaderImageURL | The URL where the image is stored that appears in the header of customer emails. |
PaymentOptionsInstitutionId | The unique identifier assigned to the institution. |
PaymentOptionsLastName | The last name of the consumer as known by the institution. |
PaymentOptionsMarketingImageURL | The URL where the marketing image is stored that appears in customer emails. |
PaymentStatus | The status of the payment. |
PreApprovalKey | The key associated with a preapproval for this payment. |
PreApprovalPIN | The personal identification number received by the sender when signing up for a preapproval. |
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. |
RecipientCount | The number of records in the Recipient arrays. |
RecipientAmount | Amount to be paid to the recipient. |
RecipientEmail | Recipient's email address This property is required. |
RecipientInvoiceId | The invoice number for the payment. |
RecipientPaymentType | The transaction subtype for the payment. |
RecipientPhoneCountryCode | The telephone country code of the receiver's phone number. |
RecipientPhoneExtension | An extension for the PhoneNumber . |
RecipientPhoneNumber | The recipient's phone number. |
RecipientPrimary | Indicates whether the recipient is the primary receiver. |
ReturnURL | The URL the sender is returned to after completing a transaction. |
ReverseOnError | Indicates whether to reverse all parallel payments if an error is encountered. |
SenderEmail | Sender's email address. |
Signature | Value to use with PayPal's Signature Authentication scheme. |
SSLAcceptServerCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertEncoded | The 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 certificate (PEM/base64 encoded). |
Timeout | A timeout for the component. |
TimeStamp | The date on which the response was sent. |
TrackingId | User-generated unique tracking number. |
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 class with short descriptions. Click on the links for further details.
Config | Sets or retrieves a configuration setting . |
CreatePayment | Creates a payment to be executed at a later time. |
DoEvents | Processes events from the internal message queue. |
ExecutePayment | Runs a payment that was previously created. |
GetPaymentOptions | Retrieves the payment options for a previously created transaction. |
GetResponseVar | It is not uncommon for there to be additional response variables returned in the response that cannot be directly obtained via the Response properties. |
Interrupt | Interrupt the current method. |
Pay | Creates and executes a new payment. |
Reset | Reset the internal state of the component and all properties to their default values. |
SetPaymentOptions | Sets the payment options for newly created transactions. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
PayError | 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. |
Warning | Information about errors during data delivery. |
Configuration Settings
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
DelayedChainedPayments | Determines whether to perform a delayed chained payment. |
AuthorizingAccount | Authorizing Account Email Address for third-party API access. |
AuthAccessToken | The access token returned by the PayPal Permission Service's GetAccessToken operation. |
AuthApplicationId | The Application ID for the application making a request to the PayPal Permissions Service. |
AuthAuthHeader | The PayPal Permissions Service authentication header. |
AuthAuthHeaderName | The name of the authentication header generated with the PayPal Permissions Service. |
AuthCallbackURL | The URL where PayPal will post the RequestToken and VerificationCode. |
AuthPassword | API Password for the PayPal Permissions Service. |
AuthRequestToken | The request token used to obtain an Access Token and Token Secret from the PayPal Permissions Service. |
AuthRequestURL | The URL for the PayPal Permissions Service operation being requested. |
AuthScope | Scope of permissions to be requested for PayPal Permissions Service. |
AuthSignature | API Signature for the PayPal Permissions Service. |
AuthTokenSecret | The token secret returned by the PayPal Permission Service's GetAccessToken operation. |
AuthUsername | API Username for the PayPal Permissions Service. |
AuthVerificationCode | The verification code used to obtain an Access Token and Token Secret from the PayPal Permissions Service. |
Build | Returns the Build number contained in the response. |
RawRequest | Returns the raw request sent to the server. |
RawResponse | 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. |
AllowIdenticalRedirectURL | Allow redirects to the same URL. |
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. |
IfModifiedSince | A date determining the maximum age of the desired document. |
KeepAlive | Determines whether the HTTP connection is closed after completion of the request. |
MaxRedirectAttempts | Limits the number of redirects that are followed in a request. |
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. |
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. |
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). |
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 TCP 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. |
RecordLength | The length of received data records. |
TCPKeepAlive | Determines whether or not the keep alive socket option is enabled. |
UseIPv6 | Whether to use IPv6. |
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. |