|
PayPal process flow
If you prefer to test the integration before going Live, and you do not have PayPal Sandbox test account, you should create PayPal Sandbox test account as first step.
1. Login to https://developer.paypal.com/ and go to "Testing Tools" => "Sandbox Accounts"
2. Click "Create account" and choose "Business (Merchant Account)" & Germany as "Country / Region".
3. Choose "View/Edit account"
4. Take "Email ID" and "System Generated Password" and use them as Login/Pass for Sandbox on the next step.
In order to allow processing transactions on your behalf, corresponding permissions should be granted to
.
Permissions can be granted to under your PayPal account. Please use the following links to login into your PayPal account and follow the steps.
|
To complete merchant setup on side, you should send PayerID to
Merchant Services.
1. Login to https://developer.paypal.com/dashboard and go to "Testing tools" --> "Sandbox Accounts".
2. Select the appropriate Sandbox merchant account and notify Merchant Services about "Account ID".
PayerID can be found under your PayPal account by https://paypal.com/myaccount/settings/ , as follows. PayerID uniquely identifies merchant in PayPal. The identifier is the same for Sandbox and Production environments.
The client-side implementation of PayPal is realized using the PayPal JavaScript SDK.
Depending on your setup, you can use the following script or prepare you own, using the official PayPal JavaScript SDK documentation https://developer.paypal.com/sdk/js/.
While you are testing in sandbox, you can use |
|
The above piece of code contains the following line. In this line it will be possible to define which funding sources will be allowed in the web shop.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
The line corresponded to the following button. By default (using the above line) only PayPal button will be available.
If it is required to have PayPal Pay Later Button in addition to standard PayPal button, the button can be enabled by using parameter enable-funding like follows.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&enable-funding=paylater"></script>
As a result the following two buttons will appear.
Full list of values for disable-funding and enable-funding can be found by the link below.
https://developer.paypal.com/docs/regional/th/checkout/reference/customize-sdk/#components
The above piece of code contains the following line.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
offers 3 possible options for a payment.
Parameter intent in the above line must be in synch with these options.
If SALE option is used, parameters intent must be set to "capture" as below.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=capture"></script>
If AUTHORIZE or ORDER option is used, parameters intent must be set to "authorize" as below.
<script type="text/javascript" src="https://www.paypal.com/sdk/js?client-id=sb¤cy=EUR&disable-funding=giropay,sofort,sepa,card&intent=authorize"></script>
It is important to set proper value for parameter intent, otherwise an error appears.
The above piece of code for PayPal Button does not have any style-related parameters. This piece of code assumes default PayPal style for the button as follows.
PayPal allows to define different PayPal Button style by using parameters shape, color, layout and label. Full list of style-related parameters can be find by the following link.
https://developer.paypal.com/docs/checkout/advanced/style-guide/
Use the following URL and parameters to initiate a PayPal payment in the form:
|
With this URL supports two different PayPal methods: One the one hand you can offer PayPal quite normally as an additional payment method for the conclusion of a sale. Otherwise you can use PayPal Express Checkout Shortcut, which connects the customers from the shopping cart directly to PayPal, where they can then select their delivery and invoicing address. The customer saves having to re-enter address details and you, as the merchant, enjoy PayPal vendor protection.
also supports the separation of authorisation and capture for PayPal Express Checkout. You can set parameters via the
to control whether the amount on the customer's PayPal account should be blocked or captured immediately.
Notice: One of the following conditions must be fulfilled to enable you to benefit from PayPal seller protection. Either the customer uses PayPal Express Checkout and selects a delivery address which it has saved previously with PayPal, which transmits to your shop. Or your shop transmits the already known delivery address to PayPal. Seller protection applies only if the goods have been supplied to this specified address. There may be no more than 3 days between the authorisation of the amount in the customer's PayPal account and capture if you wish to benefit from seller protection.
therefore supports several alternatives for the processing of PayPal payments: we shall be happy to advise you about the implementation of PayPal.
|
Parameters for PayPal payments
|
Return parameters for URLSuccess, URLFailure and URLNotify with PayPal
Notice: The address parameters are always transmitted to the shop but are empty if no address data has been exchanged.
The PayPal "shortcut" method enables a changed transaction procedure which takes the customer back to the shop for payment confirmation. To complete this PayPal payment in the next step, use the following URL and parameters:
|
|
Parameters for PayPal payments with method "shortcut"
Response parameters for PayPal with method "shortcut"
For a PayPal payment the ORDER can be separated from the subsequent authorization and the following steps. Separate authorization is only possible after the order (TxType=Order) is completed.
For a separate authorization with PayPal, please use the following URL:
|
|
Parameters for PayPal authorization
|
Response parameters for PayPal authorization
To carry out a capture for PayPal via a Server-to-Server connection, please use the following URL:
|
|
Parameters for PayPal captures
|
Result parameters for PayPal captures
To carry out a credit with a reference transaction for PayPal, please use the following URL:
|
|
Parameters for PayPal credits with reference transaction
|
Response parameters for PayPal credits with reference transaction
In order to initiate a credit without reference transaction for PayPal payment, please use the following URL:
|
|
Parameters for PayPal credits without reference transaction
|
Response parameters for PayPal credits without reference transaction
In order to cancel a transaction with PayPal, please use the following URL:
|
Parameters for PayPal reversals
|
Result parameters for PayPal reversals
The process contains two steps.
Billing Agreement Creation (initial Billing Agreement transaction)
Billing Agreement Usage
In order to initiate a PayPal subscription payment, please use the following URL:
|
|
Parameters for PayPal Reference Transactions
|
Result parameters for PayPal Reference Transactions
This section describes the parameters which must be transferred within the data set (Record) for executing a PayPal payment and which information can be found within the response file about the payment status.
For Batch calls there must be considered batch versions, from which optional parameters depend. All version designations starting with „2.“ pertain calls for a group of enterprises. That means within a batch file for a particular MerchantID can be transferred transactions for other merchants with a separate Sub-MID.
Following table gives an overview of all batch versions that are possible for a specific action and their specialities:
|
Description of the possible batch versions
The structure for a PayPal payment within a Batch file to be submitted is the following:
|
Example for Master MID function:
|
Notice: In Version 1.4 it is also possible to transfer CompleteType together with a Capture action:
PAYPAL,Capture,<Amount>,<Currency>,<TransID>,(<RefNr>,)<PayID>(,<CompleteType>,<TID>)
|
Description of fields within the record for Batch files
The record area within the response file for Batch transactions looks as follows:
|
|
Description of result parameters within the record for Batch files