PayPal process flow
To process PayPal transactions via the as merchant you need to have a PayPal Business account. You also need to grant API permissions to in order to enable usage of PayPal interface via .
1 Go to https://developer.paypal.com and:
1. Go to https://developer.paypal.com/developer/applications
2. Log-in to Dashboard using your PayPal Business account, and go to “My Apps & Credentials”
3. Create REST API app by clicking on “Create App” button.
4. Enter App Name and click “Create App” button.
5. The page shows “Sandbox account”, “Client ID” and “Secret” for this App.
6. Go to “Accounts” under SANDBOX section.
7. Find the sandbox account for newly created App (refer to step 5), then click “…” button and choose “View/edit account”.
8. The page shows “Email ID” and “System Generated Password” which will to be used later for log-in to sandbox.paypal.com.
1. Go to https://www.paypal.com/US/cgi-bin/webscr?cmd=_profile-api-grant-authorization and enter arnoldt_api1.computop.de as Third-Party Permission Username and click Lookup button.
2. Grant the following permissions and click “Add” button.
3. After adding the permissions, the following page with summary of granted permissions appears.
1. Go to https://sandbox.paypal.com
2. Log-in using “Email ID” and “System Generated Password” from Developer portal (refer to step 8 above).
3. The page shows your test store.
4. Under your account on right top conner choose “Kontoeinstellungen” and then “Website-Zahlungslösungen”.
5. Click “Bearbeiten” in front of “API-Zugriff”.
6. Click “API-Genehmigung erteilen”.
7. Enter test_paypal_api_api1.computop.com and click “Nachschlagen” button. On the page grant the following permissions and click “Hinzufügen” button.
8. After adding the permissions, the following page with summary of granted permissions appears.
1. Go to https://sandbox.paypal.com and log-in using “Email ID” and “System Generated Password” from Developer portal (refer to steps 1-3 above).
2. Under your account on right top corner choose “Kontoeinstellungen” and then “Zahlungseinstellungen”.
3. Click “Bearbeiten” in front of “Zahlungen blockieren”. On the page choose the following preferences.
4. All changes on the page are saved “on fly”, there is no need to click any button to save the changes.
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:
ExternalServices/paypalorders.aspx |
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.
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:
Authorize.aspx |
|
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:
capture.aspx |
|
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:
credit.aspx |
|
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:
paypalcreditEx.aspx |
|
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:
reverse.aspx |
|
Parameters for PayPal reversals
|
Result parameters for PayPal reversals
Basic information about using Batch files and about their structure can be found in the Batch Manager manual. Within batch processing not alle functions are available which are usually available for the online interface.
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>)
The following table describes the individual fields and values used within the data set (record) in the batch file:
|
Description of fields within the record for Batch files
The record area within the response file for Batch transactions looks as follows:
|
The following table describes the response parameters which the Batch Manager saves in the record area for each transaction (standard parameters not explained here, such as <TransID> or <RefNR> and request parameters are returned unchanged and correspond to the call as specified before):
|
Description of result parameters within the record for Batch files