Trust Payments heeft onlangs ondersteuning toegevoegd voor integratie met het nieuwste platform van PayPal. Dit is om de compatibiliteit met nieuwe PayPal-functies te garanderen en een gestroomlijnder onboardingproces voor nieuwe winkeliers mogelijk te maken.
Gevestigde Trust Payments verkopers die al transacties doen met PayPal, moeten de volgende stappen nemen om PayPal te kunnen blijven gebruiken:
-
U moet worden aangemeld bij het nieuwe PayPal-platform. Dit is een vereenvoudigd proces waarbij je per e-mail een link ontvangt om akkoord te gaan met de nieuwe voorwaarden en Trust Payments de benodigde machtigingen te geven om te koppelen aan je PayPal-rekening.
-
PayPal verplicht je om het ORDER verzoek dat je bij onze API hebt ingediend bij te werken zodat aanvullende informatie over alle producten in de bestelling van de klant wordt opgenomen.
Elk ORDER verzoek zal nu vereisen de volgende velden worden ingediend:
-
producten die een array van JSON-objecten bevat, elk met de volgende velden voor elk product in de bestelling van de klant:
- productmainamount - De prijs per product.
- productcurrencyiso3a - De Munt die bij de productprijs hoort.
- productquantity - De hoeveelheid van het product in de bestelling.
- producttitle - De naam van het product.
Kies voor volledige veldspecificaties tussen de tabbladen ECM en ECS hieronder en scroll naar het relevante gedeelte waarin het verzoek/antwoord wordt beschreven waarmee je moet werken.
Handelaars die actief zijn in bepaalde sectoren die PayPal als hoog risico beschouwt, moeten ook het ORDER -verzoek bijwerken om de volgende extra velden in te dienen:
- De producten Bovenstaande matrix moet ook de volgende extra velden bevatten voor elk product in de bestelling van de klant:
- productcode - De Stock Keeping Unit (SKU) van het product.
- productdescription - Een beschrijving van het product.
- producttaxmainamount - De belasting die op het product wordt toegepast.
- producttaxcurrencyiso3a - De Munt in verband met de toegepaste belasting.
- producttype - Kies een producttype uit "digitaal", "fysiek" of "geschenk".
- paypaltransactionriskcontextdata die een array van JSON-objecten bevat, elk met de velden paypaltransactionriskcontextdatakey en paypaltransactionriskcontextdatavalue.
-
producten die een array van JSON-objecten bevat, elk met de volgende velden voor elk product in de bestelling van de klant:
-
Je kunt het verzendbedrag nu doorgeven aan Trust Payments tijdens het afrekenen.
- Als je het definitieve verzendbedrag aan het begin van de bestelling weet, moet dit worden opgegeven in het ORDER verzoek met behulp van het veld customershippingbaseamount. Dit biedt de klant een betere gebruikerservaring doordat het verzendbedrag op de website van PayPal wordt weergegeven voordat de klant akkoord gaat met de aankoop.
- Als je de flow ECS gebruikt, kun je het antwoord ORDERDETAILS parseren voor het afleveradres van de klant en dit gebruiken om het verzendbedrag te berekenen. Dit kan dan worden verzonden in het AUTH verzoek met behulp van het veld customershippingbaseamount.
- Onthoud dat het versturen van het bedrag wordt aanbevolen, maar niet verplicht is. Je wordt bijvoorbeeld niet gedwongen om een verzendbedrag op te geven voor digitale aankopen waarvoor geen verzending nodig is.
-
Wanneer je het antwoord op ORDERDETAILS parseert, moet je er rekening mee houden dat het PayPal-adres en de betalersstatus niet langer worden geverifieerd op het nieuwe platform (deze controles zijn afgeschaft). paypaladdressstatus altijd "onbevestigd" en paypalpayerstatus zal altijd "onbevestigd" retourneren.
De algemene stroom van verzonden verzoeken / ontvangen antwoorden blijft ongewijzigd. Hierdoor kun je je bestaande implementatie bijwerken zonder dat je helemaal opnieuw hoeft te beginnen.
We raden u aan om deze wijzigingen eerst uit te rollen naar een staging-omgeving en uw integratie te testen voordat u deze uitrolt naar een productieomgeving. Als onderdeel van dit proces kan uw testsite worden geconfigureerd om verbinding te maken met de sandbox-omgeving van PayPal om het klanttraject tijdens het testen nauwkeuriger weer te geven.
Zorg er vooral voor dat je de nieuwe Pay Later-opties begrijpt die nu kunnen worden weergegeven wanneer de klant wordt doorgestuurd naar PayPal en zorg ervoor dat je oplossing hiermee rekening houdt.
PayPal is een internationaal e-commerce bedrijf dat online betalingen en overschrijvingen mogelijk maakt.
Ondersteunde landen | Geen beperkingen voor landen van de klant. |
Ondersteunde munteenheden | AUD, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USD |
Terugbetalingen |
Volledige en gedeeltelijke terugbetaling toegestaan. |
Terugboekingen |
Geschillen worden beheerd door PayPal. |
Zero-authorisation |
Niet ondersteund. |
Terugkerende betalingen |
Niet ondersteund. |
Wij ondersteunen twee PayPal transactiestromen:
Gebruik de tabbladen hierboven om de workflow te wijzigen.
Het onderstaande heeft betrekking op Express Checkout Mark ( ECM)
Express Checkout Mark (ECM ) - PayPal wordt weergegeven als een extra betaalmethode in je bestaande kassa, naast creditcards/debetkaarten.
- Tijdens het afrekenen presenteert uw website PayPal als betaalmethode.
- De klant selecteert het gewenste leveringsadres op uw afrekenpagina en kiest voor betaling via PayPal.
- De klant wordt doorgestuurd naar PayPal, waar hij zich aanmeldt met zijn PayPal-gegevens (hij kan zich bij PayPal registreren als hij nog geen rekening heeft).
- De klant bekijkt zijn bestelling en gaat akkoord met de betaling op de website van PayPal.
- De klant wordt doorgestuurd naar uw website, waar een bevestiging wordt weergegeven (bv. "Betaling geslaagd").
Betaal later
Gedurende de tijd dat de browser van de klant is omgeleid naar pagina's die worden gehost door PayPal, heeft PayPal de controle over de betaalervaring. Om klanten in staat te stellen de kosten van grotere aankopen te spreiden, kan PayPal extra financieringsopties weergeven voor transacties die aan hun vereisten hiervoor voldoen.
Eerste stappen
Vereisten
- Voordat u live PayPal-transacties kunt verwerken, hebt u een zakelijke PayPal-rekening nodig. Als u nog geen zakelijke rekening hebt, wordt u gevraagd een nieuwe rekening te registreren als onderdeel van het inwerkproces dat we hieronder beschrijven.
- PayPal ondersteunt niet dat hun gehoste pagina's worden weergegeven binnen een iframe. In plaats daarvan moet je de browser van de klant altijd omleiden naar PayPal tijdens de afrekensessie.
Voor sommige branches (zoals Reizen, Gaming en Evenementen) heeft PayPal aanvullende informatie nodig, genaamd Set Transaction Context (STC). Dergelijke informatie kan worden opgenomen in uw verzoeken aan Trust Payments en deze zullen indien nodig worden doorgegeven aan PayPal. Neem contact op met ons Support Team voor meer informatie.
PayPal inwerken
- Neem contact op met ons Support Team en vraag hoe je PayPal kunt inschakelen op je TRU Connect account.
- Ons Support Team zal je een URL geven om de installatie te voltooien.
-
Navigeer rechtstreeks naar de URL in uw browser en meld u aan met uw PayPal Business Account.
Als je nog geen zakelijke PayPal-rekening hebt geregistreerd, wordt je gevraagd dit te doen als onderdeel van de inlogprocedure. - Je krijgt een lijst met toestemmingen die je ons moet geven om de installatie te voltooien. Lees deze zorgvuldig door en klik op"Accepteren" om door te gaan.
- Nadat u de nodige toestemmingen hebt verleend, voert PayPal extra verificatiecontroles uit op uw rekening. Als u dat nog niet hebt gedaan, wordt u mogelijk gevraagd om het e-mailadres dat aan uw PayPal-rekening is gekoppeld te valideren.
-
Zodra het bovenstaande is uitgevoerd, wordt er automatisch een verzoek verzonden van PayPal naar Trust Payments om PayPal te activeren op uw site referentie en is het instapproces voltooid. We bevestigen per e-mail wanneer uw site referentie is ingeschakeld om PayPal-transacties te verwerken.
Als je vragen hebt over de status van je PayPal onboarding, neem dan contact op met ons Support Team.
Overzicht van ECM
-
Initieer de klant
- De klant voert het gewenste afleveradres in op de website van de verkoper en kiest ervoor om met PayPal te betalen.
- Merchant dient ORDER verzoek in om de sessie te starten, inclusief cancelurl en returnurl.
- Merchant ontvangt ORDER antwoord, inclusief paypaltoken en redirecturl.
-
Doorverwijzen naar PayPal
- De Merchant leidt de browser van de klant door naar de redirecturl, inclusief de paypaltoken.
- De klant meldt zich aan en bevestigt het gewenste afleveradres en de betalingsmethode op de website van PayPal en gaat akkoord met de betaling.
- Als dit lukt, wordt de browser van de klant omgeleid naar de returnurl.
- Als de PayPal-bestelling wordt geannuleerd, wordt de browser doorgestuurd naar de cancelurl waar een foutmelding kan worden weergegeven. We raden aan om alternatieve betaalmethoden weer te geven, zodat de klant het opnieuw kan proberen.
-
Verwerk de autorisatie
- Alleen als het bovenstaande is gelukt, dient de verkoper een gecombineerd ORDERDETAILS en AUTH verzoek in om de betaling te verwerken.
- De verkoper ontvangt het antwoord ORDERDETAILS AUTH en toont de ontvangstpagina aan de klant.
-
Voltooiing van de betaling
-
Bij standaardgedrag is de transactie in behandeling en worden fondsen doorgaans binnen 24 uur vereffend.
-
Maar indien gewenst kunnen winkeliers hun instellingen zo configureren dat ze in plaats daarvan verzoeken om onmiddellijke betaling. Als alternatief kan afwikkeling tot 7 dagen worden uitgesteld.
-
Zodra afwikkeling is voltooid, stuurt Trust Payments een URL-kennisgeving (indien ingeschakeld) naar het systeem van de verkoper ter bevestiging. De verkoper ontvangt de melding en reageert om Trust Payments te informeren dat de melding succesvol ontvangen is.
-
1. Initieer de klant
PayPal weergeven op uw kassa
Het officiële PayPal-acceptatiemerk moet even duidelijk en dicht bij de andere betalingswijzen op uw detailpagina worden gepresenteerd. Geen Betalingstype moet standaard worden geselecteerd.
U kunt de nieuwste officiële afbeeldingen van het PayPal-acceptatiemerk downloaden van deze URL:
https://www.paypal.com/uk/webapps/mpp/logo-center (link naar externe site)
Als u PayPal selecteert, moeten de betaalkaartvelden worden uitgeschakeld of aan het zicht worden onttrokken.
Verwerking ORDER
Het ORDER verzoek wordt gebruikt om de bestelling bij PayPal te initiëren.
Wanneer de klant ervoor kiest om met PayPal te betalen, moet uw systeem een ORDER verzoek uitvoeren en het teruggestuurde antwoord interpreteren.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(order)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'accounttypedescription' => 'ECOM',
'baseamount' => '2150',
'cancelurl' => 'https://yourwebsite.com',
'currencyiso3a' => 'GBP',
'customercountryiso2a' => 'GB',
'customerfirstname' => 'Jay',
'customerlastname' => 'Doe',
'customerpostcode' => 'TR45 6ST',
'customerprefixname' => 'Mr',
'customerpremise' => '123 Trust Lane',
'customertown' => 'Bangor',
'paymenttypedescription' => 'PAYPAL',
'paypaladdressoverride' => '1',
'products' =>
[[
'productbaseamount' => '200',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '5',
'producttitle' => 'Item 1'
],
[
'productbaseamount' => '500',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '1',
'producttitle' => 'Item 2'
]],
'requesttypedescription' => 'ORDER',
'returnurl' => 'https://yourwebsite.com',
'sitereference' => 'test_site12345'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription": "ECOM",
"baseamount": "2150",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerfirstname": "Jay",
"customerlastname": "Doe",
"customerpostcode": "TR45 6ST",
"customerprefixname": "Mr",
"customerpremise": "123 Trust Lane",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"paypaladdressoverride": "1",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL">
<paypaladdressoverride>1</paypaladdressoverride>
</payment>
</billing>
<customer>
<country>GB</country>
<name>
<first>Jay</first>
<last>Doe</last>
<prefix>Mr</prefix>
</name>
<postcode>TR45 6ST</postcode>
<premise>123 Trust Lane</premise>
<town>Bangor</town>
</customer>
<merchant>
<cancelurl>https://www.example.com/cancel</cancelurl>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<products>
<amount currencycode="GBP">200</amount>
<quantity>5</quantity>
<title>Item 1</title>
</products>
<products>
<amount currencycode="GBP">500</amount>
<quantity>1</quantity>
<title>Item 2</title>
</products>
<sitereference>test_site12345</sitereference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | Alleen "ECOM" (e-commerce) wordt ondersteund. | |
baseamount XPath: /factuur/bedrag |
Numeriek (11) |
De baseamount is het volledige totaal van de transactie, inclusief de kosten van alle bestelde producten/diensten en eventuele bijbehorende verzendkosten en/of belasting. Bijv. baseamount = de som van (productbaseamount x productquantity) + de som van (producttaxbaseamount x productquantity) + customershippingbaseamount De baseamount wordt ingediend in basiseenheden, zonder komma's of decimalen, bijv. €10 wordt ingediend als 1000. |
|
cancelurl XPath: /merchant/cancelurl |
URL (2048) | De URL waar de klant naar terugkeert als hij de autorisatie op zijn PayPal-rekening annuleert. | |
currencyiso3a XPath: /factuur/bedrag/@currencycode |
ISO3A |
De Munt in verband met de totale baseamount. Voor een lijst van Munt codes die door PayPal worden ondersteund, zie de lijst bovenaan deze pagina. |
|
customercountryiso2a XPath: /klant/land |
Alpha (2) |
Het land van het afleveradres. Dit moet in ISO2A-formaat zijn. Klik hier voor een volledige lijst met landcodes. |
|
customerpostcode XPath: /klant/postcode |
Alfanumeriek (25) |
De postcode van het afleveradres. Dit moet een geldige postcode zijn voor de customercountryiso2a ingediend. |
|
customertown XPath: /klant/stad |
Alfanumeriek, inclusief symbolen (127) |
Het afleveradres stad. |
|
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | Deze waarde moet worden opgegeven als "PAYPAL". | |
paypaladdressoverride XPath: /factuur/betaling/paypaladdressoverride |
Numeriek (1) |
Bij gebruik van de ECM flow wordt het op uw website ingevoerde afleveradres doorgegeven aan PayPal en kan het niet door de klant worden gewijzigd op de website van PayPal. Geef een van de volgende waarden op:
|
|
producten XPath: /werking/producten |
Array van JSON objecten | Het productobject moet de volgende subvelden bevatten die gemarkeerd zijn als "Verplicht" in een matrix van JSON-objecten. De array van JSON Objects-subvelden wordt herhaald binnen het productobject als het totaal uit meerdere producten bestaat hoofdbedrag. Raadpleeg het bovenstaande voorbeeld ORDER verzoek. | |
producten " productbaseamount XPath: /operatie/producten/bedrag |
Numeriek (11) |
Dit bedrag is de prijs van het gegeven product in basiseenheden. Dit is per eenheid, bijv. het maakt niet uit of de klant 1 of 5 van dit product koopt - het productbasisbedrag blijft hetzelfde. Dit bedrag is exclusief btw en verzendkosten. |
|
producten " productcurrencyiso3a XPath: /operatie/producten/bedrag/@valutacijfercode |
ISO3A |
De Munt geassocieerd met het productbaseamount. Indien ingediend, moet dit hetzelfde zijn als currencyiso3a. |
|
producten " productquantity XPath: /operatie/producten/hoeveelheid |
Numeriek (10) | Hoeveelheid van het opgegeven product in de bestelling. | |
producten " producttitle XPath: /operatie/producten/titel |
Alfanumeriek (127) | De naam of titel van het opgegeven product. | |
producten " productcode XPath: /operatie/producten/code |
Alfanumeriek (127) |
De Stock Keeping Unit (SKU) van het opgegeven product. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " productdescription XPath: /operatie/producten/beschrijving |
Alfanumeriek (127) |
Gedetailleerde beschrijving voor het opgegeven product. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttaxamount XPath: /operatie/producten/belastingbedrag |
Numeriek (11) |
Belastingbedrag voor 1 eenheid van het opgegeven product, in basiseenheden. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttaxcurrencyiso3a |
ISO3A |
Het Munt geassocieerd met het producttaxbaseamount. Indien ingediend, moet dit hetzelfde zijn als currencyiso3a. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttype XPath: /bedrijf/producten/type |
Alpha (20) |
Stuur een van de volgende documenten in:
Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "ORDER" zijn. | |
returnurl XPath: /merchant/returnurl |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na een succesvolle autorisatie op zijn PayPal-rekening. | |
sitereference XPath: /operatie/sitereference |
Alfanumeriek & underscore (50) | De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. | |
customercounty XPath: /klant/provincie |
Alfanumeriek, inclusief symbolen (127) |
De county van het afleveradres. Voor adressen in de VS wordt de staat in dit veld ingevoerd. Geldige formaten:
Vereist als customercountryiso2a een van de volgende is: AR, BR, CA, CN, ID, IN, IT, JP, MX, TH, US |
|
customerfirstname XPath: /klant/naam/eerste |
Alfanumeriek, inclusief symbolen (127) |
De voornaam van de klant. Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerlastname XPath: /klant/naam/achternaam |
Alfanumeriek, inclusief symbolen (127) |
De achternaam van de klant. Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerprefixname XPath: /klant/naam/voorvoegsel |
Alfanumeriek, inclusief symbolen (25) |
De prefixnaam van de klant (bijv. De heer, Juffrouw, Dr.). Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerpremise XPath: /klant/premise |
Alfanumeriek, inclusief symbolen (25) |
De eerste regel van het afleveradres. Vereist als paypaladdressoverride is ingesteld op "1". Anders optioneel. |
|
paypaltransactionriskcontextdata XPath: /operation/paypalttransactionriskcontextdata |
Array van JSON objecten |
Deze matrix wordt gebruikt om extra contextgegevens over een klant aan PayPal door te geven voordat de transactie wordt verwerkt. PayPal gebruikt deze gegevens om een risicobeheerbeoordeling voorafgaand aan de transactie uit te voeren. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatakey XPath: /operation/paypaltransactionriskcontextdata/sleutel |
Alfanumeriek (255) |
Sleutel van het handelaarspecifieke risicocontextveld met betrekking tot de transactie. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatavalue XPath: /operation/paypaltransactionriskcontextdata/waarde |
Alfanumeriek (255) |
Waarde van het handelaarspecifiek risicocontextveld met betrekking tot de transactie. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontexttrackingid XPath: /operatie/paypaltransactionriskcontexttrackingid |
Alfanumeriek (255) |
Een unieke ID gespecificeerd door de verkoper om elke transactie te volgen. Kan elke unieke waarde zijn. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
customeremail XPath: /klant/email |
E-mail (255) |
Het e-mailadres waarop digitale goederen worden afgeleverd. We raden aan om het e-mailadres van de klant in te voeren wanneer de paypaladdressoverride is ingesteld op "2". |
|
customermiddlename XPath: /klant/naam/midden |
Alfanumeriek, inclusief symbolen (127) |
De middelste naam of namen van de klant. |
|
klanteninkoopbasisbedrag XPath: /klant/verzendbedrag |
Numeriek (11) |
Dit bedrag is het totaal dat is uitgegeven aan verzending in basiseenheden. Voor de ECM flow moet dit het definitieve verzendbedrag zijn, omdat dit niet meer kan worden bijgewerkt voordat de klant de aankoop heeft voltooid op de website van PayPal. |
|
customerstreet XPath: /klant/straat |
Alfanumeriek, inclusief symbolen (127) |
De tweede regel van het afleveradres. |
|
customershippingcurrencyiso3a XPath: /klant/verzendbedrag/@valutacode |
ISO3A |
De Munt geassocieerd met het klantenwinkelbasisbedrag. Indien opgegeven, moet dit hetzelfde zijn als currencyiso3a. |
|
customersuffixname XPath: /klant/naam/suffix |
Alfanumeriek, inclusief symbolen (25) |
De achtervoegselnaam van de klant (bv. Bsc). |
|
orderreference XPath: /merchant/orderreference |
Alfanumeriek, inclusief symbolen (25)
Aanbevolen lengte 25 tekens of minder (exacte lengte afhankelijk van de wervende bank). Niet-naleving van deze eis kan ertoe leiden dat de tekst in de transactie wordt ingekort. |
Uw unieke bestelreferentie die kan worden opgeslagen op Trust Payments en het systeem van PayPal (dit is uw PayPal-factuur-ID).
Zorg ervoor dat de bestelreferentie uniek is voor elke bestelling. |
|
paypallocale XPath: /factuur/betaling/lokaal |
Alpha (2) |
De taal van de PayPal-inlogpagina.
Klik hier voor een lijst van PayPal-locaties (link naar externe site). |
|
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
Dit geeft de te gebruiken afwikkeling stroom weer. Geef een van de volgende opties op:
|
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'paymenttypedescription': u 'PAYPAL',
u 'paypaltoken': u '56604A14170900854600',
u 'requesttypedescription': u 'ORDER',
u 'redirecturl': u 'https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20002',
u 'transactionstartedtimestamp': u '2020-06-01 15:35:40'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(13) {
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["paymenttypedescription"] => string(6) "PAYPAL"
["paypaltoken"] => string(20) "56604A14170900854600"
["redirecturl"] => string(112) "https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout"
["requesttypedescription"] => string(5) "ORDER"
["settleduedate" ]=> string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20002"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:35:40"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"operatorname":"webservices@example.com",
"paymenttypedescription":"PAYPAL",
"paypaltoken":"56604A14170900854600",
"redirecturl":"https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout",
"requesttypedescription":"ORDER",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20002",
"transactionstartedtimestamp":"2020-06-01 15:35:40"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<billing>
<payment type="PAYPAL"/>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<paypal>
<redirecturl>https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout</redirecturl>
<token>56604A14170900854600</token>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:35:40</timestamp>
<transactionreference>72-32-20002</transactionreference>
</response>
<secrand>9yFfRJfI</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | De teruggezonden waarde is "PAYPAL". | |
paypaltoken XPath: /paypal/token |
Alfanumeriek (255) | Het token heeft betrekking op de sessie van de klant in het systeem van PayPal. U moet dit registreren, omdat u het dan kunt gebruiken in verband met eventuele relevante vragen aan PayPal. | |
redirecturl XPath: /paypal/redirecturl |
URL (255) | Stuur de browser van de klant door naar deze URL, zodat hij zich kan aanmelden bij zijn PayPal-rekening. | |
requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "ORDER". | |
settleduedate XPath: /afwikkeling/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor het verzoek, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /tijdstempel |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. | |
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
Je kunt je PayPal-rekening zo configureren dat de controle op dubbele factuur-ID's (waarden die zijn opgegeven in de orderreference). Neem contact op met PayPal Support voor meer informatie.
2. Doorverwijzen naar PayPal
Na het succesvol indienen van een ORDER verzoek, krijgt uw systeem een redirecturl teruggestuurd. Om de betaling te verwerken, moet je systeem deze URL gebruiken wanneer de browser van de klant wordt omgeleid naar een pagina die wordt gehost door PayPal.
Door de URL te wijzigen zoals hieronder beschreven, kun je de tekst wijzigen die wordt weergegeven op de verzendknop die aan de klant wordt getoond op de PayPal detailpagina: |
|
Om deze knop weer te geven: Gebruik de redirecturl ongewijzigd. |
Om deze knop weer te geven: Voeg useraction als volgt toe aan het eindpunt: |
Nadat de klant zich heeft aangemeld bij zijn PayPal-rekening, heeft hij de optie om door te gaan met de transactie of deze te annuleren.
U moet wachten tot de klant terugkeert van PayPal naar de returnurl gehost op uw servers voordat u een autorisatie verwerkt.
Wanneer PayPal een transactie weigert terwijl de klant zich op hun servers bevindt, verschijnt er een bericht op het scherm. De klant kan worden gevraagd het opnieuw te proberen of de betalingspoging te annuleren.
Tijdens het testen word je in dit stadium doorgestuurd naar de sandbox van PayPal, een omgeving die sterk lijkt op de interface die de klant zou gebruiken om in te loggen op zijn PayPal-rekening en de betaling te autoriseren.
3. Verwerk de autorisatie
Als de klant wordt doorgestuurd naar cancelurlkan de klant opnieuw proberen of een andere betaalmethode selecteren.
Als de klant wordt doorverwezen naar returnurlvolg dan de onderstaande instructies.
- Het ORDERDETAILS verzoek wordt gebruikt om wijzigingen op te halen die de klant heeft aangebracht op PayPal voordat hij de AUTH uitvoert.
- Het verzoek AUTH is om de betaling te verwerken.
Dit voorbeeld laat zien hoe een ORDERDETAILS gevolgd door een AUTH verzoek wordt verwerkt. Merk op hoe de structuur van het verzoek vergelijkbaar is met die van een standaard AUTH verzoek, behalve dat "ORDERDETAILS" is opgenomen in het requesttypedescriptions veld vóór "AUTH".
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
orderdetailsauth = {
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(orderdetailsauth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'parenttransactionreference' => '72-32-20002',
'paymenttypedescription' => 'PAYPAL',
'requesttypedescriptions' => array('ORDERDETAILS','AUTH'),
'sitereference' => 'test_site12345'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"parenttransactionreference": "72-32-20002",
"paymenttypedescription": "PAYPAL",
"requesttypedescriptions": ["ORDERDETAILS","AUTH"],
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference":"72-32-20002",
"paymenttypedescription":"PAYPAL",
"requesttypedescriptions":["ORDERDETAILS","AUTH"],
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDERDETAILS">
<operation>
<parenttransactionreference>72-32-20002</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</operation>
</request>
<request type="AUTH">
<billing>
<payment type="PAYPAL"/>
</billing>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dien de transactionreference teruggestuurd in het voorgaande ORDER antwoord. | |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | Deze waarde moet worden opgegeven als "PAYPAL". | |
requesttypedescriptions Opmerking: De XML-indiening bestaat uit twee afzonderlijke verzoeken. Wij raden u aan het bovenstaande voorbeeld te gebruiken om dit verzoek te structureren. |
Lijst | Dien "ORDERDETAILS" en "AUTH" in, zoals in het verzoekvoorbeeld hierboven. | |
sitereference XPath: /operatie/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. |
Hier is een voorbeeld van een gecombineerd antwoord van ORDERDETAILS en AUTH . Merk op hoe het antwoord in twee delen is verdeeld; het eerste deel vertegenwoordigt het antwoord "ORDERDETAILS" en het tweede deel vertegenwoordigt het antwoord "AUTH" (zoals aangegeven door de waarden van de requesttypedescription velden).
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'billingcountryiso2a': u 'GB',
u 'billingemail': u 'paypal.email@example.com',
u 'billingfirstname': u 'Andru00e9',
u 'billinglastname': u 'PAYPALLastName',
u 'customercountryiso2a': u 'GB',
u 'customercounty': u 'Gwynedd',
u 'customeremail': u 'email@customer.com',
u 'customerip': u '1.2.3.4',
u 'customerlastname': u 'Jay Doe',
u 'customerpostcode': u 'PA45 6AL',
u 'customerpremise': u 'No 456',
u 'customerstreet': u 'Trust Street',
u 'customertown': u 'Caernarfon',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'merchantname': u 'Test Merchant',
u 'parenttransactionreference': u '72-32-20002',
u 'paypaladdressstatus': u 'Unconfirmed',
u 'paypalpayerid': u 'e018408a43pid',
u 'paypalpayerstatus': u 'unverified',
u 'requesttypedescription': u 'ORDERDETAILS',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20003',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}, {
u 'accounttypedescription': u 'ECOM',
u 'acquirerresponsecode': u 'CREATED',
u 'authcode': u '44782-D149613359266',
u 'baseamount': u '2150',
u 'currencyiso3a': u 'GBP',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20003',
u 'paymenttypedescription': u 'PAYPAL',
u 'requesttypedescription': u 'AUTH',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20004',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(2) {
[0] => array(28) {
["accounttypedescription"] => string(4) "ECOM"
["billingcountryiso2a"] => string(2) "GB"
["billingemail"] => string(24) "paypal.email@example.com"
["billingfirstname"] => string(10) "Andru00e9"
["billinglastname"] => string(14) "PAYPALLastName"
["customercountryiso2a"] => string(2) "GB"
["customercounty"] => string(7) "Gwynedd"
["customeremail"] => string(18) "email@customer.com"
["customerip"] => string(7) "1.2.3.4"
["customerlastname"] => string(7) "Jay Doe"
["customerpostcode"] => string(8) "PA45 6AL"
["customerpremise"] => string(6) "No 456"
["customerstreet"] => string(10) "Trust Street"
["customertown"] => string(10) "Caernarfon"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20002"
["paypaladdressstatus"] => string(11) "Unconfirmed"
["paypalpayerid"] => string(13) "e018408a43pid"
["paypalpayerstatus"] => string(10) "unverified"
["requesttypedescription"] => string(12) "ORDERDETAILS"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20003"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
[1] =>array(17) {
["accounttypedescription"] => string(4) "ECOM"
["acquirerresponsecode"] => string(7) "CREATED"
["authcode"] => string(19) "44782-D149613359266"
["baseamount"] => string(4) "2150"
["currencyiso3a"] => string(3) "GBP"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20003"
["paymenttypedescription"] => string(6) "PAYPAL"
["requesttypedescription"] => string(4) "AUTH"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20004"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"billingcountryiso2a":"GB",
"billingemail":"paypal.email@example.com",
"billingfirstname":"Andru00e9",
"billinglastname":"PAYPALLastName",
"customercountryiso2a": "GB",
"customercounty": "Gwynedd",
"customeremail": "email@customer.com",
"customerip": "1.2.3.4",
"customerlastname": "Jay Doe",
"customerpostcode": "PA45 6AL",
"customerpremise": "No 456",
"customerstreet": "Trust Street",
"customertown": "Caernarfon",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20002",
"paypaladdressstatus":"Unconfirmed",
"paypalpayerid":"e018408a43pid",
"paypalpayerstatus":"unverified",
"requesttypedescription":"ORDERDETAILS",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20003",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
},
{
"accounttypedescription":"ECOM",
"acquirerresponsecode":"CREATED",
"authcode":"44782-D149613359266",
"baseamount":"2150",
"currencyiso3a":"GBP",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20004",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="ORDERDETAILS">
<billing>
<country>GB</country>
<email>paypal.email@example.com</email>
<name>
<first>Andru00e9</first>
<last>PAYPALLastName</last>
</name>
</billing>
<customer>
<country>GB</country>
<county>Gwynedd</county>
<email>email@customer.com</email>
<ip>1.2.3.4</ip>
<name>
<last>Jay Doe</last>
</name>
<postcode>PA45 6AL</postcode>
<premise>No 456</premise>
<street>Trust Street</street>
<town>Caernarfon</town>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20002</parenttransactionreference>
</operation>
<paypal>
<addressstatus>Unconfirmed</addressstatus>
<payerid>e018408a43pid</payerid>
<payerstatus>unverified</payerstatus>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20003</transactionreference>
</response>
<response type="AUTH">
<acquirerresponsecode>CREATED</acquirerresponsecode>
<authcode>83154-D140912749345</authcode>
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL"/>
</billing>
<error>
<message>Ok</message>
<code>0</code>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20003</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20004</transactionreference>
</response>
<secrand>oSs0Vl</secrand>
</responseblock>
Specificatie veld
Omdat veel van de in dit antwoord geretourneerde velden ook voorkomen in een standaard AUTH antwoord, hebben wij hieronder alleen de belangrijkste velden opgesomd, die relevant zijn bij het verwerken van PayPal antwoorden.
Klik hier voor de volledige AUTH specificatie.
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Vergeet niet de foutmelding in zowel ORDERDETAILS als AUTH te controleren. Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Vergeet niet de foutmelding in zowel ORDERDETAILS als AUTH te controleren. Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dit veld wordt in beide delen van het antwoord geretourneerd en verwijst naar eerdere verzoeken die in de reeks zijn verwerkt. | |
Alleen teruggestuurd in AUTH antwoord |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | De teruggezonden waarde is "PAYPAL". |
Alleen teruggestuurd in ORDERDETAILS antwoord |
paypaladdressstatus XPath: /paypal/adresstatus |
Alfa (25) | De status van het adres bij PayPal. Dit is een verouderde controle en PayPal zal altijd de waarde "Unconfirmed" terugsturen. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
paypalpayerid XPath: /paypal/betalerid |
Alfanumeriek (255) | Uniek PayPal-klantennummer. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
paypalpayerstatus XPath: /paypal/betaalstatus |
Alfa (25) |
De status van de betaler bij PayPal. Dit is een verouderde controle en PayPal zal altijd de waarde "unverified" terugsturen. |
requesttypedescription XPath: /@type |
Alpha (20) | "ORDERDETAILS" en "AUTH" worden teruggestuurd in hun respectieve antwoorden. | |
settleduedate XPath: /afwikkeling/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
(Zie hieronder voor informatie over afwikkeling) |
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Unieke referenties voor beide verzoeken, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /tijdstempel |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop elk verzoek is verwerkt. | |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Het land van het afleveradres dat PayPal terugstuurt. Dit moet in ISO2A-formaat zijn. Klik hier voor een volledige lijst van landcodes. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customercounty XPath: /customer/county |
Alfanumeriek, inclusief symbolen (127) |
De provincie van het afleveradres dat PayPal terugstuurt. Voor adressen in de VS wordt hier de 2-karakter code van de staat hier terug. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customeremail XPath: /customer/email |
E-mail (255) |
Het e-mailadres voor bezorging dat PayPal terugstuurt. Maximale lengte van 255 (maximaal 64 tekens vóór het "@"-symbool). Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customerip XPath: /customer/ip |
IP-adres (39) |
Het IP-adres van het apparaat dat wordt gebruikt om de bestelling te verwerken. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customerlastname XPath: /customer/name/last |
Alfanumeriek, inclusief symbolen (127) |
De volledige naam van de levering die is teruggestuurd door PayPal. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customerpostcode XPath: /customer/postcode |
Alfanumeriek (25) |
De postcode van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customerpremise XPath: /customer/premise |
Alfanumeriek, inclusief symbolen (25) |
De eerste regel van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customerstreet XPath: /customer/street |
Alfanumeriek, inclusief symbolen (127) |
De tweede regel van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
Alleen teruggestuurd in ORDERDETAILS antwoord |
customertown XPath: /customer/town |
Alfanumeriek, inclusief symbolen (127) |
De stad van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout.
Vergeet niet de foutmelding in zowel ORDERDETAILS als AUTH te controleren. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
merchantname XPath: /merchant/merchantname |
Alfanumeriek (255) |
Dit zijn gegevens die verband houden met de rekening die is gebruikt om de transactie te verwerken.
Als u deze velden wilt wijzigen, neem dan contact op met ons Support Team. Hangt af van uw account configuratie. |
4. Voltooiing van de betaling
Afwikkeling
Zodra een PayPal-transactie is geautoriseerd, wordt het geld normaal gesproken binnen 24 uur op je bankrekening gestort:
- Na autorisatie wordt de Status betaling op 0 gezet om aan te geven dat afwikkeling in afwachting is.
- Trust Payments start dagelijks het afwikkeling proces voor lopende PayPal transacties.
- De Status betaling van een PayPal-transactie wordt bijgewerkt tot 10 wanneer afwikkeling bezig is.
- Kort daarna ontvangt Trust Payments een bevestiging van PayPal dat het geld is overgemaakt en wordt de Status betaling wordt bijgewerkt tot 100.
Over Pay Later
Denk er bij het afhandelen van vragen over bestellingen van klanten aan dat een klant ervoor kan hebben gekozen om de kosten van de aankoop te spreiden via de Pay Later-producten van PayPal.
Ongeacht hoe de klant ervoor kiest om de transactie te financieren, je wordt altijd volledig betaald op het moment van aankoop, net als bij een conventionele PayPal-transactie.
Als gevolg hiervan kan een PayPal-transactie als "Afgerekend" worden geregistreerd, zelfs als de klant zijn saldo nog niet bij PayPal heeft afgerekend. Eventuele problemen met betrekking tot renteloos krediet of nog uitstaande termijnen moeten rechtstreeks door de klant met PayPal worden opgelost.
Alternatieve afwikkeling stromen
Om afwikkeling uit te stellen voor een gegeven PayPal-transactie, neemt u settlestatus=2 op in het ORDER verzoek. Dit wordt overgenomen door het AUTH verzoek, waardoor de transactie tijdelijk wordt opgeschort na autorisatie.
De afwikkeling wordt uitgesteld totdat je een TRANSACTIONUPDATE met settlestatus=0.
PayPal-transacties kunnen tot 31 dagen worden uitgesteld.
Voor onmiddellijke afwikkeling functionaliteit gelden aanvullende vereisten.
Voordat je onmiddellijk afwikkeling kunt verwerken, moet je contact opnemen met ons Support Team en een verzoek indienen om dit in te schakelen op je account.
Om onmiddellijk afwikkeling in te schakelen voor een bepaalde transactie, neemt u settlestatus=100 op in het ORDER verzoek. Dit zal worden overgenomen door het AUTH verzoek, dat Trust Payments zal triggeren om te proberen afwikkeling van fondsen onmiddellijk na autorisatie.
Als PayPal meer tijd nodig heeft om controles uit te voeren, kan de transactie tijdelijk worden ingesteld op Status betaling 10.
Je kunt ervoor kiezen om een lager bedrag te betalen dan oorspronkelijk was toegestaan. Hiervoor dient u een TRANSACTIONUPDATE met een lager settlebaseamount.
Meldingen
Voordat u begint met testen, raden wij u aan contact op te nemen met ons Support Team en te verzoeken dat regels worden ingeschakeld op uw account, die URL-kennisgevingen naar uw systeem sturen in de volgende scenario's:
- Wanneer een betaling is geautoriseerd (AUTH heeft errorcode=0).
- Wanneer de fondsen zijn vereffend (AUTH in settlestatus=100).
Wanneer u contact opneemt met Support, geef dan uw site referentie op en het eindpunt waarnaar de melding wordt verzonden.
U moet de inhoud van elke ontvangen kennisgeving controleren en dienovereenkomstig reageren door de procedures te volgen die in onze URL-kennisgevingen documentatie. In het bijzonder moet u kijken naar de bijgewerkte settlestatus waarde:
- Op autorisatie: Als de settlestatus "0", "1" of "10" is, is de betaling geautoriseerd en hoeft u op dit moment geen verdere actie te ondernemen. Waarden van "2" of "3" geven echter aan dat het geld niet gepland voor afwikkeling (respectievelijk uitgesteld en geannuleerd).
- Op afwikkeling: Als de settlestatus is bijgewerkt tot "100", betekent dit dat het geld is vereffend. Als dit is bijgewerkt tot "3", is er een probleem geweest en is de betaling geannuleerd.
Terugbetalingen
Het proces voor het verwerken van PayPal-terugbetalingen is hetzelfde als het terugbetalen van een standaard kaarttransactie, maar lees eerst het volgende:
- Om ervoor te zorgen dat uw administratie met Trust Payments gesynchroniseerd blijft met Paypal, raden wij u ten zeerste aan om terugbetalingen uitsluitend uit te voeren via het Trust Payments platform, in plaats van via de PayPal admin portal.
- Je moet ervoor zorgen dat je het AUTH verzoek terugbetaalt, en NIET verwijzingen doorgeeft naar gerelateerde ORDER of ORDERDETAILS verzoeken.
- De meeste PayPal-terugbetalingen worden onmiddellijk verrekend (settlestatus=100). Onder bepaalde, door PayPal gedefinieerde voorwaarden, kunnen terugbetalingen echter worden ingesteld op settlestatus=10 ("settling"), wat een tussenstap is voorafgaand aan afwikkeling. Als een PayPal-terugbetaling op uw rekening in settlestatus=10 staat, raden we u aan om dit bij ons Support Team na te vragen voor het geval er verdere acties moeten worden uitgevoerd om afwikkeling te garanderen.
Over Pay Later
Houd er bij het afhandelen van verzoeken om restitutie van klanten rekening mee dat een klant ervoor kan hebben gekozen om de kosten van de oorspronkelijke aankoop te spreiden via de Pay Later-producten van PayPal.
Daarom is het noodzakelijk dat je bij een volledige terugbetaling van een transactie het volledige bedrag terugbetaalt om te voorkomen dat de klant later wordt gefactureerd voor nog openstaande tegoeden.
Wanneer een terugbetaling wordt uitgevoerd, wordt het geld van je bankrekening afgeschreven en PayPal is ervoor verantwoordelijk dat de klant dienovereenkomstig wordt gecrediteerd.
Met de bovenstaande opmerkingen in gedachten kun je op de onderstaande koppelingen klikken om de instructies voor het uitvoeren van PayPal-terugbetalingen in een nieuw tabblad te openen:
Gebruik de tabbladen hierboven om de workflow te wijzigen.
Het onderstaande heeft betrekking op Express Checkout Shortcut ( ECS)
Express Checkout Shortcut (ECS ) - Klanten klikken op de "Betaal met Paypal" knop op uw website en worden doorgestuurd naar de servers van PayPal.
- Op uw winkelwagenpagina biedt uw website de klant de mogelijkheid om af te rekenen via PayPal.
- De klant klikt op de knop en wordt doorgestuurd naar PayPal, waar hij zich aanmeldt met zijn PayPal-gegevens (hij kan zich bij PayPal registreren als hij nog geen rekening heeft).
- De klant kiest op de website van PayPal het leveringsadres en de betalingswijze van zijn voorkeur.
- De klant wordt teruggeleid naar je website, waar je extra verzendkosten kunt toevoegen en een eindoverzicht met het totaalbedrag kunt weergeven.
- De klant gaat akkoord met de betaling op uw website en krijgt een aankoopbevestiging te zien.
Betaal later
Gedurende de tijd dat de browser van de klant is omgeleid naar pagina's die worden gehost door PayPal, heeft PayPal de controle over de betaalervaring. Om klanten in staat te stellen de kosten van grotere aankopen te spreiden, kan PayPal extra financieringsopties weergeven voor transacties die aan hun vereisten hiervoor voldoen.
Eerste stappen
Vereisten
- Voordat u live PayPal-transacties kunt verwerken, hebt u een zakelijke PayPal-rekening nodig. Als u nog geen zakelijke rekening hebt, wordt u gevraagd een nieuwe rekening te registreren als onderdeel van het inwerkproces dat we hieronder beschrijven.
- PayPal ondersteunt niet dat hun gehoste pagina's worden weergegeven binnen een iframe. In plaats daarvan moet je de browser van de klant altijd omleiden naar PayPal tijdens de afrekensessie.
Voor sommige branches (zoals Reizen, Gaming en Evenementen) heeft PayPal aanvullende informatie nodig, genaamd Set Transaction Context (STC). Dergelijke informatie kan worden opgenomen in uw verzoeken aan Trust Payments en deze zullen indien nodig worden doorgegeven aan PayPal. Neem contact op met ons Support Team voor meer informatie.
PayPal inwerken
- Neem contact op met ons Support Team en vraag hoe je PayPal kunt inschakelen op je TRU Connect account.
- Ons Support Team zal je een URL geven om de installatie te voltooien.
-
Navigeer rechtstreeks naar de URL in uw browser en meld u aan met uw PayPal Business Account.
Als je nog geen zakelijke PayPal-rekening hebt geregistreerd, wordt je gevraagd dit te doen als onderdeel van de inlogprocedure. - Je krijgt een lijst met toestemmingen die je ons moet geven om de installatie te voltooien. Lees deze zorgvuldig door en klik op"Accepteren" om door te gaan.
- Nadat u de nodige toestemmingen hebt verleend, voert PayPal extra verificatiecontroles uit op uw rekening. Als u dat nog niet hebt gedaan, wordt u mogelijk gevraagd om het e-mailadres dat aan uw PayPal-rekening is gekoppeld te valideren.
-
Zodra het bovenstaande is uitgevoerd, wordt er automatisch een verzoek verzonden van PayPal naar Trust Payments om PayPal te activeren op uw site referentie en is het instapproces voltooid. We zullen per e-mail bevestigen wanneer uw site referentie is ingeschakeld om PayPal-transacties te verwerken.
-
Als je vragen hebt over de status van je PayPal onboarding, neem dan contact op met ons Support Team.
Overzicht van ECS
-
Initieer de klant
- De klant gaat akkoord met een betaling via PayPal op de website van de verkoper.
- Merchant dient ORDER verzoek in om de sessie te starten, inclusief cancelurl en returnurl.
- Merchant ontvangt ORDER antwoord, inclusief paypaltoken en redirecturl.
-
Doorverwijzen naar PayPal
- De Merchant leidt de browser van de klant door naar de redirecturl, inclusief de paypaltoken.
- De klant meldt zich aan en gaat akkoord met de betaling via zijn PayPal-account.
- Als dit lukt, wordt de browser van de klant omgeleid naar de returnurl.
- Als de PayPal-bestelling wordt geannuleerd, wordt de browser doorgestuurd naar de cancelurl waar een foutmelding kan worden weergegeven. We raden aan om alternatieve betaalmethoden weer te geven, zodat de klant het opnieuw kan proberen.
-
Bestelgegevens ophalen
- Alleen als het bovenstaande is gelukt, dient de verkoper een ORDERDETAILS verzoek in om de transactiegegevens van PayPal op te halen.
- Merchant ontvangt het antwoord ORDERDETAILS en gebruikt dit om een besteloverzicht weer te geven aan de klant. Dit antwoord kan worden geparseerd voor het afleveradres en dit kan worden gebruikt om een bijgewerkte verzendkosten te berekenen en weer te geven (indien nodig).
-
Verwerk de autorisatie
- Als de klant akkoord gaat met de aankoop op je website, dient de verkoper een AUTH verzoek in om de betaling te verwerken.
- De verkoper ontvangt het antwoord AUTH en toont de ontvangstpagina aan de klant.
-
Voltooiing van de betaling
-
Bij standaardgedrag is de transactie in behandeling en worden fondsen doorgaans binnen 24 uur vereffend.
-
Maar indien gewenst kunnen winkeliers hun instellingen zo configureren dat ze in plaats daarvan verzoeken om onmiddellijke betaling. Als alternatief kan afwikkeling tot 7 dagen worden uitgesteld.
-
Zodra afwikkeling is voltooid, stuurt Trust Payments een URL-kennisgeving (indien ingeschakeld) naar het systeem van de verkoper ter bevestiging. De verkoper ontvangt de melding en reageert om Trust Payments te informeren dat de melding succesvol ontvangen is.
-
1. Initieer de klant
PayPal weergeven op uw kassa
PayPal biedt een knop die u aan uw website kunt toevoegen, samen met richtlijnen en hoe deze moet worden gebruikt.
Klik hier om de nieuwste officiële "PayPal Betalen"-knoppen te downloaden (link naar externe site).
De "PayPal Betalen" knop moet de klant zonder afwijkingen of tussenstappen rechtstreeks naar PayPal leiden en daarna terugkeren naar uw website. De klant mag niet worden verplicht zich voor de aankoop aan te melden bij een winkelrekening. Bovendien moet de knop:
- Wordt direct onder of naast elk van uw eigen kassa-knoppen geplaatst.
- Boven de vouw worden geplaatst (zichtbaar zonder te hoeven scrollen).
- Gebruik een alternatieve tekst "Betaal met Paypal" voor gevallen waarin de afbeelding niet wordt geladen in de browser van de klant.
Deze richtlijnen zijn opgesteld door PayPal en kunnen worden gewijzigd.
Verwerking ORDER
Het ORDER verzoek wordt gebruikt om de bestelling bij PayPal te initiëren.
Wanneer de klant ervoor kiest om met PayPal te betalen, moet uw systeem een ORDER verzoek uitvoeren en het teruggestuurde antwoord interpreteren.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
order = {
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(order)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'accounttypedescription' => 'ECOM',
'baseamount' => '1650',
'cancelurl' => 'https://yourwebsite.com',
'currencyiso3a' => 'GBP',
'customercountryiso2a' => 'GB',
'customerpostcode' => 'TR45 6ST',
'customertown' => 'Bangor',
'paymenttypedescription' => 'PAYPAL',
'products' =>
[[
'productbaseamount' => '200',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '5',
'producttitle' => 'Item 1'
],
[
'productbaseamount' => '500',
'productcurrencyiso3a' => 'GBP',
'productquantity' => '1',
'producttitle' => 'Item 2'
]],
'requesttypedescription' => 'ORDER',
'returnurl' => 'https://yourwebsite.com',
'sitereference' => 'test_site12345'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription": "ECOM",
"baseamount": "1650",
"cancelurl": "https://yourwebsite.com",
"currencyiso3a": "GBP",
"customercountryiso2a": "GB",
"customerpostcode": "TR45 6ST",
"customertown": "Bangor",
"paymenttypedescription": "PAYPAL",
"products":
[{
"productbaseamount": "200",
"productcurrencyiso3a": "GBP",
"productquantity": "5",
"producttitle": "Item 1"
},
{
"productbaseamount": "500",
"productcurrencyiso3a": "GBP",
"productquantity": "1",
"producttitle": "Item 2"
}],
"requesttypedescription": "ORDER",
"returnurl": "https://yourwebsite.com",
"sitereference": "test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDER">
<billing>
<amount currencycode="GBP">1650</amount>
<payment type="PAYPAL"/>
</billing>
<customer>
<country>GB</country>
<postcode>TR45 6ST</postcode>
<town>Bangor</town>
</customer>
<merchant>
<cancelurl>https://www.example.com/cancel</cancelurl>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<products>
<amount currencycode="GBP">200</amount>
<quantity>5</quantity>
<title>Item 1</title>
</products>
<products>
<amount currencycode="GBP">500</amount>
<quantity>1</quantity>
<title>Item 2</title>
</products>
<sitereference>test_site12345</sitereference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | Alleen "ECOM" (e-commerce) wordt ondersteund. | |
baseamount XPath: /factuur/bedrag |
Numeriek (11) |
De baseamount is het volledige totaal van de transactie, inclusief de kosten van alle bestelde producten/diensten en eventuele bijbehorende verzendkosten en/of belasting. Bijv. baseamount = de som van (productbaseamount x productquantity) + de som van (producttaxbaseamount x productquantity) + customershippingbaseamount De baseamount wordt ingediend in basiseenheden, zonder komma's of decimalen, bijv. €10 wordt ingediend als 1000. |
|
cancelurl XPath: /merchant/cancelurl |
URL (2048) | De URL waar de klant naar terugkeert als hij de autorisatie op zijn PayPal-rekening annuleert. | |
currencyiso3a XPath: /factuur/bedrag/@currencycode |
ISO3A |
De Munt in verband met de totale baseamount. Voor een lijst van Munt codes die door PayPal worden ondersteund, zie de lijst bovenaan deze pagina. |
|
customercountryiso2a XPath: /klant/land |
Alpha (2) |
Het land van het afleveradres. Dit moet in ISO2A-formaat zijn. Klik hier voor een volledige lijst met landcodes. |
|
customerpostcode XPath: /klant/postcode |
Alfanumeriek (25) |
De postcode van het afleveradres. Dit moet een geldige postcode zijn voor de customercountryiso2a ingediend. |
|
customertown XPath: /klant/stad |
Alfanumeriek, inclusief symbolen (127) |
Het afleveradres stad. |
|
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | Deze waarde moet worden opgegeven als "PAYPAL". | |
producten XPath: /werking/producten |
Array van JSON objecten | Het productobject moet de volgende subvelden bevatten die gemarkeerd zijn als "Verplicht" in een matrix van JSON-objecten. De array van JSON Objects-subvelden wordt herhaald binnen het productobject als het totaal uit meerdere producten bestaat hoofdbedrag. Raadpleeg het bovenstaande voorbeeld ORDER verzoek. | |
producten " productbaseamount XPath: /operatie/producten/bedrag |
Numeriek (11) |
Dit bedrag is de prijs van het gegeven product in basiseenheden. Dit is per eenheid, bijv. het maakt niet uit of de klant 1 of 5 van dit product koopt - het productbasisbedrag blijft hetzelfde. Dit bedrag is exclusief btw en verzendkosten. |
|
producten " productcurrencyiso3a XPath: /operatie/producten/bedrag/@valutacijfercode |
ISO3A |
De Munt geassocieerd met het productbaseamount. Indien ingediend, moet dit hetzelfde zijn als currencyiso3a. |
|
producten " productquantity XPath: /operatie/producten/hoeveelheid |
Numeriek (10) | Hoeveelheid van het opgegeven product in de bestelling. | |
producten " producttitle XPath: /operatie/producten/titel |
Alfanumeriek (127) | De naam of titel van het opgegeven product. | |
producten " productcode XPath: /operatie/producten/code |
Alfanumeriek (127) |
De Stock Keeping Unit (SKU) van het opgegeven product. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " productdescription XPath: /operatie/producten/beschrijving |
Alfanumeriek (127) |
Gedetailleerde beschrijving voor het opgegeven product. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttaxamount XPath: /operatie/producten/belastingbedrag |
Numeriek (11) |
Belastingbedrag voor 1 eenheid van het opgegeven product, in basiseenheden. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttaxcurrencyiso3a |
ISO3A |
Het Munt geassocieerd met het producttaxbaseamount. Indien ingediend, moet dit hetzelfde zijn als currencyiso3a. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
producten " producttype XPath: /bedrijf/producten/type |
Alpha (20) |
Stuur een van de volgende documenten in:
Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "ORDER" zijn. | |
returnurl XPath: /merchant/returnurl |
URL (2048) | De URL waarnaar de klant wordt teruggestuurd na een succesvolle autorisatie op zijn PayPal-rekening. | |
sitereference XPath: /operatie/sitereference |
Alfanumeriek & underscore (50) | De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. | |
customercounty XPath: /klant/provincie |
Alfanumeriek, inclusief symbolen (127) |
De county van het afleveradres. Voor adressen in de VS wordt de staat in dit veld ingevoerd. Geldige formaten:
Vereist als customercountryiso2a een van de volgende is: AR, BR, CA, CN, ID, IN, IT, JP, MX, TH, US |
|
customerfirstname XPath: /klant/naam/eerste |
Alfanumeriek, inclusief symbolen (127) |
De voornaam van de klant. Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerlastname XPath: /klant/naam/achternaam |
Alfanumeriek, inclusief symbolen (127) |
De achternaam van de klant. Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerprefixname XPath: /klant/naam/voorvoegsel |
Alfanumeriek, inclusief symbolen (25) |
De prefixnaam van de klant (bijv. De heer, Juffrouw, Dr.). Vereist als paypaladdressoverride is ingesteld op "1" of "2". Anders optioneel. |
|
customerpremise XPath: /klant/premise |
Alfanumeriek, inclusief symbolen (25) |
De eerste regel van het afleveradres. Vereist als paypaladdressoverride is ingesteld op "1". Anders optioneel. |
|
paypaltransactionriskcontextdata XPath: /operation/paypalttransactionriskcontextdata |
Array van JSON objecten |
Deze matrix wordt gebruikt om extra contextgegevens over een klant aan PayPal door te geven voordat de transactie wordt verwerkt. PayPal gebruikt deze gegevens om een risicobeheerbeoordeling voorafgaand aan de transactie uit te voeren. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatakey XPath: /operation/paypaltransactionriskcontextdata/sleutel |
Alfanumeriek (255) |
Sleutel van het handelaarspecifieke risicocontextveld met betrekking tot de transactie. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontextdata " paypaltransactionriskcontextdatavalue XPath: /operation/paypaltransactionriskcontextdata/waarde |
Alfanumeriek (255) |
Waarde van het handelaarspecifiek risicocontextveld met betrekking tot de transactie. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
paypaltransactionriskcontexttrackingid XPath: /operatie/paypaltransactionriskcontexttrackingid |
Alfanumeriek (255) |
Een unieke ID gespecificeerd door de verkoper om elke transactie te volgen. Kan elke unieke waarde zijn. Vereist voor verkopers die actief zijn in bepaalde sectoren die PayPal als zeer risicovol beschouwt. Neem contact op met ons Support Team als je twijfelt. |
|
customeremail XPath: /klant/email |
E-mail (255) |
Het e-mailadres waarop digitale goederen worden afgeleverd. We raden aan om het e-mailadres van de klant in te voeren wanneer de paypaladdressoverride is ingesteld op "2". |
|
customermiddlename XPath: /klant/naam/midden |
Alfanumeriek, inclusief symbolen (127) |
De middelste naam of namen van de klant. |
|
klanteninkoopbasisbedrag XPath: /klant/verzendbedrag |
Numeriek (11) |
Dit bedrag is het totaal dat is uitgegeven aan verzending in basiseenheden. Voor de ECS flow raden we je aan om, als je het uiteindelijke verzendbedrag al weet, dit op te nemen in het ORDER verzoek, omdat dit aan de klant wordt getoond op de PayPal website, waardoor het voor de klant eenvoudiger wordt om de uitsplitsing van het bedrag dat hij moet betalen te begrijpen. Anders kun je dit veld weglaten en in plaats daarvan het adres gebruiken dat PayPal terugstuurt in het volgende ORDERDETAILS antwoord om een nauwkeuriger verzendbedrag te berekenen en dit in te dienen in het AUTH verzoek. |
|
customershippingcurrencyiso3a XPath: /klant/verzendbedrag/@valutacode |
ISO3A |
De Munt geassocieerd met het klantenwinkelbasisbedrag. Indien opgegeven, moet dit hetzelfde zijn als currencyiso3a. |
|
customerstreet XPath: /klant/straat |
Alfanumeriek, inclusief symbolen (127) |
De tweede regel van het afleveradres. |
|
customersuffixname XPath: /klant/naam/suffix |
Alfanumeriek, inclusief symbolen (25) |
De achtervoegselnaam van de klant (bv. Bsc). |
|
orderreference XPath: /merchant/orderreference |
Alfanumeriek, inclusief symbolen (25)
Aanbevolen lengte 25 tekens of minder (exacte lengte afhankelijk van de wervende bank). Niet-naleving van deze eis kan ertoe leiden dat de tekst in de transactie wordt ingekort. |
Uw unieke bestelreferentie die kan worden opgeslagen op Trust Payments en het systeem van PayPal (dit is uw PayPal-factuur-ID).
Zorg ervoor dat de bestelreferentie uniek is voor elke bestelling. |
|
paypaladdressoverride XPath: /factuur/betaling/paypaladdressoverride |
Numeriek (1) |
Hiermee kunt u het door de klant bij PayPal gekozen afleveradres overschrijven:
|
|
paypallocale XPath: /factuur/betaling/lokaal |
Alpha (2) |
De taal van de PayPal-inlogpagina.
Klik hier voor een lijst van PayPal-locaties (link naar externe site). |
|
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
Dit geeft de te gebruiken afwikkeling stroom weer. Geef een van de volgende opties op:
|
{
u 'requestreference': u 'A0bxh87wt',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'operatorname': u 'webservices@example.com',
u 'paymenttypedescription': u 'PAYPAL',
u 'paypaltoken': u '56604A14170900854600',
u 'redirecturl': u 'https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout',
u 'requesttypedescription': u 'ORDER',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20002',
u 'transactionstartedtimestamp': u '2020-06-01 15:35:40'
}]
}
array(3) {
["requestreference"] => string(9) "A349bdehj"
["version"] => string(4) "1.00"
["responses"] =>array(1) {
[0] => array(13) {
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["operatorname"] => string(23) "webservices@example.com"
["paymenttypedescription"] => string(6) "PAYPAL"
["paypaltoken"] => string(11) "56604A14170900854600"
["redirecturl"] => string(112) "https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout"
["requesttypedescription"] => string(5) "ORDER"
["settleduedate" ]=> string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20002"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:35:40"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"operatorname":"webservices@example.com",
"paymenttypedescription":"PAYPAL",
"paypaltoken":"56604A14170900854600",
"redirecturl":"https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout",
"requesttypedescription":"ORDER",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20002",
"transactionstartedtimestamp":"2020-06-01 15:35:40"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X62d3qhev</requestreference>
<response type="ORDER">
<billing>
<payment type="PAYPAL"/>
</billing>
<error>
<message>Ok</message>
<code>0</code>
</error>
<live>0</live>
<merchant>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<paypal>
<redirecturl>https://www.paypal.com/cgi-bin/webscr?token=56604A14170900854600&useraction=commit&cmd=_express-checkout</redirecturl>
<token>56604A14170900854600</token>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:35:40</timestamp>
<transactionreference>72-32-20002</transactionreference>
</response>
<secrand>9yFfRJfI</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | De teruggezonden waarde is "PAYPAL". | |
paypaltoken XPath: /paypal/token |
Alfanumeriek (255) | Het token heeft betrekking op de sessie van de klant in het systeem van PayPal. U moet dit registreren, omdat u het dan kunt gebruiken in verband met eventuele relevante vragen aan PayPal. | |
redirecturl XPath: /paypal/redirecturl |
URL (255) | Stuur de browser van de klant door naar deze URL, zodat hij zich kan aanmelden bij zijn PayPal-rekening. | |
requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "ORDER". | |
settleduedate XPath: /afwikkeling/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor het verzoek, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /tijdstempel |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. | |
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
Je kunt je PayPal-rekening zo configureren dat de controle op dubbele factuur-ID's (waarden die zijn opgegeven in de orderreference). Neem contact op met PayPal Support voor meer informatie.
2. Doorverwijzen naar PayPal
Na het succesvol indienen van een ORDER verzoek, krijgt uw systeem een redirecturl teruggestuurd. Om de betaling te verwerken, moet je systeem deze URL gebruiken wanneer de browser van de klant wordt omgeleid naar een pagina die wordt gehost door PayPal.
Door de URL te wijzigen zoals hieronder beschreven, kun je de tekst wijzigen die wordt weergegeven op de verzendknop die aan de klant wordt getoond op de PayPal detailpagina: |
|
Om deze knop weer te geven: Gebruik de redirecturl ongewijzigd.
|
Om deze knop weer te geven: Voeg als volgt toe aan het eindpunt: |
Nadat de klant zich heeft aangemeld bij zijn PayPal-rekening, heeft hij de optie om door te gaan met de transactie of deze te annuleren.
U moet wachten tot de klant terugkeert van de PayPal-loginpagina naar de returnurl gehost op uw servers voordat u een autorisatie verwerkt.
Wanneer PayPal een transactie weigert terwijl de klant zich op hun servers bevindt, verschijnt er een bericht op het scherm. De klant kan worden gevraagd het opnieuw te proberen of de betalingspoging te annuleren.
Tijdens het testen word je in dit stadium doorgestuurd naar de sandbox van PayPal, een omgeving die sterk lijkt op de interface die de klant zou gebruiken om in te loggen op zijn PayPal-rekening en de betaling te autoriseren.
3. Bestelgegevens ophalen
Als de klant wordt doorgestuurd naar cancelurlkan de klant opnieuw proberen of een andere betaalmethode selecteren.
Als de klant wordt doorverwezen naar returnurlvolg dan de onderstaande instructies.
Hier is een voorbeeld van een ORDERDETAILS verzoek. Dit verzoek haalt de adresgegevens op die de klant heeft ingevoerd op de servers van PayPal, en stuurt deze terug in een antwoord op ORDERDETAILS .
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
orderdetails = {
"parenttransactionreference": "72-32-20002",
"requesttypedescription": "ORDERDETAILS",
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(orderdetails)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'parenttransactionreference' => '72-32-20002',
'requesttypedescription' => array'ORDERDETAILS',
'sitereference' => 'test_site12345'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"parenttransactionreference": "72-32-20002",
"requesttypedescription": "ORDERDETAILS",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference":"72-32-20002",
"requesttypedescription":"ORDERDETAILS",
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="ORDERDETAILS">
<operation>
<parenttransactionreference>72-32-20002</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dien het transactionreference van het voorgaande ORDER antwoord. Dit komt van de omleiding van PayPal. | |
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "ORDERDETAILS" zijn. | |
sitereference XPath: /operatie/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. |
Hier is een voorbeeld van een reactie op ORDERDETAILS :
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'billingcountryiso2a': u 'GB',
u 'billingemail': u 'paypal.email@example.com',
u 'billingfirstname': u 'Andru00e9',
u 'billinglastname': u 'PAYPALLastName',
u 'customercountryiso2a': u 'GB',
u 'customercounty': u 'Gwynedd',
u 'customeremail': u 'email@customer.com',
u 'customerip': u '1.2.3.4',
u 'customerlastname': u 'Jay Doe',
u 'customerpostcode': u 'PA45 6AL',
u 'customerpremise': u 'No 456',
u 'customerstreet': u 'Trust Street',
u 'customertown': u 'Caernarfon',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20002',
u 'paypaladdressstatus': u 'Unconfirmed',
u 'paypalpayerid': u '4d22e2606apid',
u 'paypalpayerstatus': u 'unverified',
u 'requesttypedescription': u 'ORDERDETAILS',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20003',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:00'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(28) {
["accounttypedescription"] => string(4) "ECOM"
["billingcountryiso2a"] => string(2) "GB"
["billingemail"] => string(24) "paypal.email@example.com"
["billingfirstname"] => string(10) "Andru00e9"
["billinglastname"] => string(14) "PAYPALLastName"
["customercountryiso2a"] => string(2) "GB"
["customercounty"] => string(7) "Gwynedd"
["customeremail"] => string(18) "email@customer.com"
["customerip"] => string(7) "1.2.3.4"
["customerlastname"] => string(7) "Jay Doe"
["customerpostcode"] => string(8) "PA45 6AL"
["customerpremise"] => string(6) "No 456"
["customerstreet"] => string(10) "Trust Street"
["customertown"] => string(10) "Caernarfon"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20002"
["paypaladdressstatus"] => string(11) "Unconfirmed"
["paypalpayerid"] => string(13) "4d22e2606apid"
["paypalpayerstatus"] => string(10) "unverified"
["requesttypedescription"] => string(12) "ORDERDETAILS"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20003"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:00"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"billingcountryiso2a":"GB",
"billingemail":"paypal.email@example.com",
"billingfirstname":"Andru00e9",
"billinglastname":"PAYPALLastName",
"customercountryiso2a": "GB",
"customercounty": "Gwynedd",
"customeremail": "email@customer.com",
"customerip": "1.2.3.4",
"customerlastname": "Jay Doe",
"customerpostcode": "PA45 6AL",
"customerpremise": "No 456",
"customerstreet": "Trust Street",
"customertown": "Caernarfon",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20002",
"paypaladdressstatus":"Unconfirmed",
"paypalpayerid":"4d22e2606apid",
"paypalpayerstatus":"unverified",
"requesttypedescription":"ORDERDETAILS",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20003",
"transactionstartedtimestamp":"2020-06-01 15:36:00"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="ORDERDETAILS">
<billing>
<country>GB</country>
<email>paypal.email@example.com</email>
<name>
<first>Andru00e9</first>
<last>PAYPALLastName</last>
</name>
</billing>
<customer>
<country>GB</country>
<county>Gwynedd</county>
<email>email@customer.com</email>
<ip>1.2.3.4</ip>
<name>
<last>Jay Doe</last>
</name>
<postcode>PA45 6AL</postcode>
<premise>No 456</premise>
<street>Trust Street</street>
<town>Caernarfon</town>
</customer>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20002</parenttransactionreference>
</operation>
<paypal>
<addressstatus>Unconfirmed</addressstatus>
<payerid>4d22e2606apid</payerid>
<payerstatus>unverified</payerstatus>
</paypal>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:00</timestamp>
<transactionreference>72-32-20003</transactionreference>
</response>
<secrand>bt</secrand>
</responseblock>
Specificatie veld
De volgende tabel beschrijft de belangrijkste velden die in het geretourneerde antwoord moeten worden gecontroleerd:
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De transactionreference van het voorgaande ORDER antwoord. | |
paypaladdressstatus XPath: /paypal/adresstatus |
Alfa (25) | De status van het adres bij PayPal. Dit is een verouderde controle en PayPal zal altijd de waarde "Unconfirmed" terugsturen. | |
paypalpayerid XPath: /factuur/betaling/betalerid |
Alfanumeriek (255) | Unqiue PayPal klantennummer. | |
paypalpayerstatus XPath: /paypal/betaalstatus |
Alfa (25) | De status van de betaler bij PayPal. Dit is een verouderde controle en PayPal zal altijd de waarde "unverified" terugsturen. | |
requesttypedescription XPath: /@type |
Alpha (20) | De teruggezonden waarde is "ORDERDETAILS". | |
settleduedate XPath: /afwikkeling/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) |
|
|
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor het verzoek, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /tijdstempel |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. | |
customercountryiso2a XPath: /customer/country |
Alpha (2) |
Het land van het afleveradres dat PayPal terugstuurt. Dit moet in ISO2A-formaat zijn. Klik hier voor een volledige lijst van landcodes. Teruggestuurd van PayPal indien beschikbaar. |
|
customercounty XPath: /customer/county |
Alfanumeriek, inclusief symbolen (127) |
De provincie van het afleveradres dat PayPal terugstuurt. Voor adressen in de VS wordt hier de staatcode van 2 tekens geretourneerd. Teruggestuurd van PayPal indien beschikbaar. |
|
customeremail XPath: /customer/email |
E-mail (255) |
Het e-mailadres voor bezorging dat PayPal terugstuurt. Maximale lengte van 255 (maximaal 64 tekens vóór het "@"-symbool). Teruggestuurd van PayPal indien beschikbaar. |
|
customerip XPath: /customer/ip |
IP-adres (39) |
Het IP-adres van het apparaat dat wordt gebruikt om de bestelling te verwerken. Teruggestuurd van PayPal indien beschikbaar. |
|
customerlastname XPath: /customer/name/last |
Alfanumeriek, inclusief symbolen (127) |
De volledige naam van de levering die is teruggestuurd door PayPal. Teruggestuurd van PayPal indien beschikbaar. |
|
customerpostcode XPath: /customer/postcode |
Alfanumeriek (25) |
De postcode van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
|
customerpremise XPath: /customer/premise |
Alfanumeriek, inclusief symbolen (25) |
De eerste regel van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
|
customerstreet XPath: /customer/street |
Alfanumeriek, inclusief symbolen (127) |
De tweede regel van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
|
customertown XPath: /customer/town |
Alfanumeriek, inclusief symbolen (127) |
De stad van het afleveradres dat PayPal terugstuurt. Teruggestuurd van PayPal indien beschikbaar. |
|
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
merchantname XPath: /merchant/merchantname |
Alfanumeriek (255) |
Dit zijn gegevens die verband houden met de rekening die is gebruikt om de transactie te verwerken.
Als u deze velden wilt wijzigen, neem dan contact op met ons Support Team. Hangt af van uw account configuratie. |
Samenvattingspagina weergeven aan de klant
U moet de informatie in het antwoord op ORDERDETAILS gebruiken om de klant op uw website een pagina te tonen met een samenvatting van de bestelling. De klant kan deze pagina gebruiken om zijn bestelling te bekijken en te bevestigen dat hij wil doorgaan, in welk geval uw systeem een AUTH verzoek indient, zoals hieronder beschreven.
De beste praktijken
- De klant moet de aankoop in twee of minder stappen kunnen voltooien nadat hij vanaf de PayPal-afrekenpagina's naar uw website is doorverwezen.
- De klant mag niet verplicht worden om handmatig extra informatie in te voeren op de beoordelingspagina.
Op de voornoemde bestelpagina moet de volgende informatie aan de klant worden gepresenteerd alvorens de aankoop te voltooien:
- PayPal als geselecteerde betalingsmethode.
- Afleveradres en e-mailadres van PayPal (te vinden in het antwoord op ORDERDETAILS).
- Het totale bedrag dat de klant moet betalen, inclusief belasting en eventuele extra verzendkosten die worden toegevoegd aan het oorspronkelijke transactiebedrag (indien van toepassing). Zie hieronder voor meer informatie over verzendkosten.
Over verzendkosten
Zodra je systeem het antwoord ORDERDETAILS heeft ontvangen, zou je nu in het bezit moeten zijn van het afleveradres van de klant (als je van plan bent een fysiek product te verzenden). Op dit moment kun je verzendkosten toevoegen aan de transactiekosten.
Ongeacht eventuele verzendkosten moet je de totale kosten aan de klant presenteren en hij/zij moet akkoord gaan met dit eindbedrag voordat de betaling wordt verwerkt. We raden aan om de kosten van het product of de producten en de belasting te scheiden van de verzendkosten, zodat de klant beter begrijpt hoe het bedrag is berekend.
Zodra de klant akkoord gaat met de betaling, kan je systeem een AUTH verzoek verwerken met dit definitieve bedrag in de volgende velden:
- baseamount - Totaal aankoopbedrag inclusief verzendkosten en btw.
- customershippingbaseamount - Verzendkosten berekend op basis van het bezorgadres teruggestuurd door PayPal.
De extra kosten voor het verzenden worden door jou bepaald. Over het algemeen zijn er drie manieren om de verzendkosten te berekenen:
- Gratis verzending - Je kiest ervoor om geen extra kosten toe te voegen aan de kosten van het product en je bedrijf dekt de verzendkosten.
- Vaste verzendkosten - Je kiest ervoor om dezelfde verzendkosten aan elke bestelling toe te voegen. Dit werkt het beste als je ervoor zorgt dat de genoemde toeslag dezelfde waarde heeft als de gemiddelde verzendkosten over al je bestellingen.
- De exacte kosten in rekening brengen (met realtime tarieven) - Nu je het afleveradres van de klant en de grootte en het gewicht van de levering hebt, kun je contact opnemen met je verzendpartner en de exacte verzendkosten berekenen en deze aan de klant presenteren voordat je de betaling afrondt.
4. Verwerk de autorisatie
Nadat de klant heeft bevestigd dat hij verder wil gaan met de betaling, moet je systeem een AUTH verzoek uitvoeren en het antwoord interpreteren.
Hier is een voorbeeld van een PayPal AUTH verzoek. Merk op hoe de structuur lijkt op een standaard AUTH verzoek, behalve dat de meeste betalings-, facturerings- en leveringsgegevens zijn weggelaten, omdat deze worden geërfd van de vorige verzoeken. Zorg ervoor dat het parenttransactionreference veld wordt ingevuld, met daarin de unieke Transactiereferentie van het voorgaande ORDERDETAILS verzoek.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference": "72-32-20003",
"paymenttypedescription": "PAYPAL",
"requesttypedescription": "AUTH",
"sitereference": "test_site12345"
}
strequest = securetrading.Request()
strequest.update(auth)
stresponse = st.process(strequest) #stresponse contains the transaction response
<?php
if (!($autoload = realpath(__DIR__ . '/../../../autoload.php')) && !($autoload = realpath(__DIR__ . '/../vendor/autoload.php'))) {
throw new Exception('Composer autoloader file could not be found.');
}
require_once($autoload);
$configData = array(
'username' => 'webservices@example.com',
'password' => 'Password1^'
);
$requestData = array(
'baseamount' => '2150',
'customershippingbaseamount' => '500',
'parenttransactionreference' => '72-32-20003',
'paymenttypedescription' => 'PAYPAL',
'requesttypedescription' => 'AUTH',
'sitereference' => 'test_site12345'
);
$api = \Securetrading\api($configData);
$response = $api->process($requestData);
var_dump($response->toArray());
?>
curl --user webservices@example.com:Password1^ <DOMAIN>/json/ -H "Content-type: application/json" -H "Accept: application/json" -X POST -d '{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference": "72-32-20003",
"paymenttypedescription": "PAYPAL",
"requesttypedescription": "AUTH",
"sitereference": "test_site12345"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"baseamount": "2150",
"customershippingbaseamount": "500",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"sitereference":"test_site12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<billing>
<amount>2150</amount>
</billing>
<customer>
<shippingamount>500</shippingamount>
</customer>
<operation>
<parenttransactionreference>72-32-20003</parenttransactionreference>
<sitereference>test_site12345</sitereference>
</operation>
<billing>
<payment type="PAYPAL"/>
</billing>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
Dien de transactionreference teruggestuurd in het voorgaande ORDERDETAILS antwoord. | |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | Deze waarde moet worden opgegeven als "PAYPAL". | |
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "AUTH" zijn. | |
sitereference XPath: /operatie/sitereference |
Alfanumeriek & underscore (50) |
De site referentie heeft betrekking op uw individuele account die u bij de installatie hebt ontvangen. Als u uw site referentie niet kent, neem dan contact op met ons Support Team. | |
baseamount XPath: /factuur/bedrag |
Numeriek (11) |
Als het totaalbedrag van de bestelling nu, door het toevoegen van de verzendkosten, afwijkt van het bedrag dat is opgegeven in het verzoek op , moet u het verzoek opnieuw indienen. baseamount dat is opgegeven in de ORDER aanvraag, moet u de baseamount met het bijgewerkte totaalbedrag in de AUTH aanvraag. bijv. Uiteindelijke baseamount = de som van (productbasisbedrag x productquantity) + de som van (productbelastingbasisbedrag x productquantity) + Uiteindelijke klantenservicebasisbedrag De baseamount wordt ingediend in basiseenheden, zonder komma's of decimalen, bijv. €10 wordt ingediend als 1000. |
|
klanteninkoopbasisbedrag XPath: /klant/verzendbedrag |
Numeriek (11) |
Dit bedrag is het totaal dat is uitgegeven aan verzending in basiseenheden. Dit moet het definitieve verzendbedrag zijn, omdat dit niet meer kan worden bijgewerkt voordat de klant de aankoop heeft voltooid. Het basisbedrag voor de klantenservice wordt opgegeven in basiseenheden, zonder komma's of decimalen, bijv. €10 wordt opgegeven als 1000. |
Hier volgt een voorbeeld van een PayPal AUTH antwoord. De structuur is vergelijkbaar met een standaard AUTH antwoord, behalve dat er extra PayPal-specifieke velden zijn opgenomen.
{
u 'requestreference': u 'A0dcb11e6',
u 'version': u '1.00',
u 'responses': [{
u 'accounttypedescription': u 'ECOM',
u 'acquirerresponsecode': u 'CREATED',
u 'authcode': u '44782-D149613359266',
u 'baseamount': u '2150',
u 'currencyiso3a': u 'GBP',
u 'errorcode': u '0',
u 'errormessage': u 'Ok',
u 'livestatus': u '0',
u 'merchantname': u 'Test Merchant',
u 'operatorname': u 'webservices@example.com',
u 'parenttransactionreference': u '72-32-20003',
u 'paymenttypedescription': u 'PAYPAL',
u 'requesttypedescription': u 'AUTH',
u 'settleduedate': u '2020-06-01',
u 'settlestatus': u '0',
u 'transactionreference': u '72-32-20004',
u 'transactionstartedtimestamp': u '2020-06-01 15:36:20'
}]
}
array(3) {
["requestreference"] => string(9) "A58cdfkpy"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] =>array(17) {
["accounttypedescription"] => string(4) "ECOM"
["acquirerresponsecode"] => string(7) "CREATED"
["authcode"] => string(19) "44782-D149613359266"
["baseamount"] => string(4) "2150"
["currencyiso3a"] => string(3) "GBP"
["errorcode"] => string(1) "0"
["errormessage"] => string(2) "Ok"
["livestatus"] => string(1) "0"
["merchantname"] => string(13) "Test Merchant"
["operatorname"] => string(23) "webservices@example.com"
["parenttransactionreference"] => string(11) "72-32-20003"
["paymenttypedescription"] => string(6) "PAYPAL"
["requesttypedescription"] => string(4) "AUTH"
["settleduedate"] => string(10) "2020-06-01"
["settlestatus"] => string(1) "0"
["transactionreference"] => string(11) "72-32-20004"
["transactionstartedtimestamp"] => string(19) "2020-06-01 15:36:20"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"accounttypedescription":"ECOM",
"acquirerresponsecode":"CREATED",
"authcode":"44782-D149613359266",
"baseamount":"2150",
"currencyiso3a":"GBP",
"errorcode":"0",
"errormessage":"Ok",
"livestatus":"0",
"merchantname":"Test Merchant",
"operatorname":"webservices@example.com",
"parenttransactionreference":"72-32-20003",
"paymenttypedescription":"PAYPAL",
"requesttypedescription":"AUTH",
"settleduedate":"2020-06-01",
"settlestatus":"0",
"transactionreference":"72-32-20004",
"transactionstartedtimestamp":"2020-06-01 15:36:20"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>X538160153</requestreference>
<response type="AUTH">
<acquirerresponsecode>CREATED</acquirerresponsecode>
<authcode>83154-D140912749345</authcode>
<billing>
<amount currencycode="GBP">2150</amount>
<payment type="PAYPAL"/>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<merchantname>Test Merchant</merchantname>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>72-32-20003</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2020-06-01</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<timestamp>2020-06-01 15:36:20</timestamp>
<transactionreference>72-32-20004</transactionreference>
</response>
<secrand>LLq</secrand>
</responseblock>
Specificatie veld
Omdat veel van de in dit antwoord geretourneerde velden ook voorkomen in een standaard AUTH antwoord, hebben wij hieronder alleen de belangrijkste velden opgesomd, die relevant zijn bij het verwerken van PayPal antwoorden.
Klik hier voor de volledige AUTH specificatie.
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operatie/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
acquirerresponsecode XPath: /acquirerresponsecode |
Alfanumeriek (255) | Gebruikt door uw verwerver om het resultaat van het verzoek aan te geven. | |
baseamount XPath: /factuur/bedrag |
Numeriek (11) | Het totaalbedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. | |
currencyiso3a XPath: /factuur/bedrag/@currencycode |
Alpha (3) |
De Munt waarin de transactie werd verwerkt (in ISO3A-formaat).
Voor een lijst van Munt codes die door PayPal worden ondersteund, zie de lijst bovenaan deze pagina. |
|
errorcode XPath: /error/code |
Numeriek (1-5) |
De foutcode (errorcode) moet worden gebruikt om te bepalen of het verzoek succesvol was of niet.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
errormessage XPath: /error/message |
Alfanumeriek (255) |
Dit is het bericht dat overeenkomt met de bovenstaande code.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
livestatus XPath: /live |
Numeriek (1) |
|
|
operatorname XPath: /merchant/operatorname |
Alfanumeriek (255) | De waarde van dit veld bevat de naam van de gebruiker die het verzoek heeft verwerkt. | |
parenttransactionreference XPath: /operatie/parenttransactionreference |
Alfanumeriek en koppeltekens (25) |
De transactionreference van het voorgaande ORDERDETAILS antwoord. | |
paymenttypedescription XPath: /facturering/betaling/@type |
Alpha (20) | De teruggezonden waarde is "PAYPAL". | |
requesttypedescription XPath: /@type |
Alpha (20) | De geretourneerde waarde is "AUTH". | |
settleduedate XPath: /afwikkeling/settleduedate |
Datum JJJJ-MM-DD | De datum waarop de transactie zal worden afgewikkeld. | |
settlestatus XPath: /afwikkeling/settlestatus |
Numeriek (3) | Dit veld wordt gebruikt om de transactiestatus te bepalen. (Zie hieronder voor informatie over afwikkeling) | |
transactionreference XPath: /transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
Een unieke referentie voor het verzoek, toegewezen door Trust Payments. | |
transactionstartedtimestamp XPath: /tijdstempel |
Datum tijd JJJJ-MM-DD hh:mm:ss | Het tijdstip waarop het verzoek is verwerkt. | |
authcode XPath: /authcode |
Alfanumeriek (255) |
De autorisatie code verstrekt door de uitgevende bank. Wordt alleen geretourneerd als de transactie is toegestaan. |
|
errordata XPath: /error/data |
Alfanumeriek (255) |
Aanvullende informatie om te helpen bij het oplossen van de fout. Wordt alleen geretourneerd als er een fout is opgetreden. |
|
merchantname XPath: /merchant/merchantname |
Alfanumeriek (255) |
Dit zijn gegevens die verband houden met de rekening die is gebruikt om de transactie te verwerken.
Als u deze velden wilt wijzigen, neem dan contact op met ons Support Team. Hangt af van uw account configuratie. |
5. Voltooiing van de betaling
Afwikkeling
Zodra een PayPal-transactie is geautoriseerd, wordt het geld normaal gesproken binnen 24 uur op je bankrekening gestort:
- Na autorisatie wordt de Status betaling op 0 gezet om aan te geven dat afwikkeling in afwachting is.
- Trust Payments start dagelijks het afwikkeling proces voor lopende PayPal transacties.
- De Status betaling van een PayPal-transactie wordt bijgewerkt tot 10 wanneer afwikkeling bezig is.
- Kort daarna ontvangt Trust Payments een bevestiging van PayPal dat het geld is overgemaakt en wordt de Status betaling wordt bijgewerkt tot 100.
Over Pay Later
Denk er bij het afhandelen van vragen over bestellingen van klanten aan dat een klant ervoor kan hebben gekozen om de kosten van de aankoop te spreiden via de Pay Later-producten van PayPal.
Ongeacht hoe de klant ervoor kiest om de transactie te financieren, je wordt altijd volledig betaald op het moment van aankoop, net als bij een conventionele PayPal-transactie.
Als gevolg hiervan kan een PayPal-transactie als "Afgerekend" worden geregistreerd, zelfs als de klant zijn saldo nog niet bij PayPal heeft afgerekend. Eventuele problemen met betrekking tot renteloos krediet of nog uitstaande termijnen moeten rechtstreeks door de klant met PayPal worden opgelost.
Alternatieve afwikkeling stromen
Om afwikkeling uit te stellen voor een gegeven PayPal-transactie, neemt u settlestatus=2 op in het ORDER verzoek. Dit wordt overgenomen door het AUTH verzoek, waardoor de transactie tijdelijk wordt opgeschort na autorisatie.
De afwikkeling wordt uitgesteld totdat je een TRANSACTIONUPDATE met settlestatus=0.
PayPal-transacties kunnen tot 31 dagen worden uitgesteld.
Voor onmiddellijke afwikkeling functionaliteit gelden aanvullende vereisten.
Voordat je onmiddellijk afwikkeling kunt verwerken, moet je contact opnemen met ons Support Team en een verzoek indienen om dit in te schakelen op je account.
Om onmiddellijk afwikkeling in te schakelen voor een bepaalde transactie, neemt u settlestatus=100 op in het ORDER verzoek. Dit zal worden overgenomen door het AUTH verzoek, dat Trust Payments zal triggeren om te proberen afwikkeling van fondsen onmiddellijk na autorisatie.
Als PayPal meer tijd nodig heeft om controles uit te voeren, kan de transactie tijdelijk worden ingesteld op Status betaling 10.
Je kunt ervoor kiezen om een lager bedrag te betalen dan oorspronkelijk was toegestaan. Hiervoor dient u een TRANSACTIONUPDATE met een lager settlebaseamount.
Meldingen
Voordat u begint met testen, raden wij u aan contact op te nemen met ons Support Team en te verzoeken dat regels worden ingeschakeld op uw account, die URL-kennisgevingen naar uw systeem sturen in de volgende scenario's:
- Wanneer een betaling is geautoriseerd (AUTH heeft errorcode=0).
- Wanneer de fondsen zijn vereffend (AUTH in settlestatus=100).
Wanneer u contact opneemt met Support, geef dan uw site referentie op en het eindpunt waarnaar de melding wordt verzonden.
U moet de inhoud van elke ontvangen kennisgeving controleren en dienovereenkomstig reageren door de procedures te volgen die in onze URL-kennisgevingen documentatie. In het bijzonder moet u kijken naar de bijgewerkte settlestatus waarde:
- Op autorisatie: Als de settlestatus "0", "1" of "10" is, is de betaling geautoriseerd en hoeft u op dit moment geen verdere actie te ondernemen. Waarden van "2" of "3" geven echter aan dat het geld niet gepland voor afwikkeling (respectievelijk uitgesteld en geannuleerd).
- Op afwikkeling: Als de settlestatus is bijgewerkt tot "100", betekent dit dat het geld is vereffend. Als dit is bijgewerkt tot "3", is er een probleem geweest en is de betaling geannuleerd.
Terugbetalingen
Het proces voor het verwerken van PayPal-terugbetalingen is hetzelfde als het terugbetalen van een standaard kaarttransactie, maar lees eerst het volgende:
- Om ervoor te zorgen dat uw administratie met Trust Payments gesynchroniseerd blijft met Paypal, raden wij u ten zeerste aan om terugbetalingen uitsluitend uit te voeren via het Trust Payments platform, in plaats van via de PayPal admin portal.
- Je moet ervoor zorgen dat je het AUTH verzoek terugbetaalt, en NIET verwijzingen doorgeeft naar gerelateerde ORDER of ORDERDETAILS verzoeken.
- De meeste PayPal-terugbetalingen worden onmiddellijk verrekend (settlestatus=100). Onder bepaalde, door PayPal gedefinieerde voorwaarden, kunnen terugbetalingen echter worden ingesteld op settlestatus=10 ("settling"), wat een tussenstap is voorafgaand aan afwikkeling. Als een PayPal-terugbetaling op uw rekening in settlestatus=10 staat, raden we u aan om dit bij ons Support Team na te vragen voor het geval er verdere acties moeten worden uitgevoerd om afwikkeling te garanderen.
Over Pay Later
Houd er bij het afhandelen van verzoeken om restitutie van klanten rekening mee dat een klant ervoor kan hebben gekozen om de kosten van de oorspronkelijke aankoop te spreiden via de Pay Later-producten van PayPal.
Daarom is het noodzakelijk dat je bij een volledige terugbetaling van een transactie het volledige bedrag terugbetaalt om te voorkomen dat de klant later wordt gefactureerd voor nog openstaande tegoeden.
Wanneer een terugbetaling wordt uitgevoerd, wordt het geld van je bankrekening afgeschreven en PayPal is ervoor verantwoordelijk dat de klant dienovereenkomstig wordt gecrediteerd.
Met de bovenstaande opmerkingen in gedachten kun je op de onderstaande koppelingen klikken om de instructies voor het uitvoeren van PayPal-terugbetalingen in een nieuw tabblad te openen: