Alipay is een Chinese e-wallet die behoort tot AntFinancial, een filiaal van de Alibaba groep, het grootste e-commerce bedrijf ter wereld. Als u Alipay selecteert, worden de klanten doorgestuurd naar de pagina's waar ze hun persoonlijke gegevens invoeren en akkoord gaan met de betaling, voordat ze terug worden geleid naar uw website. Eenmaal voltooid, ontvangt u een bevestiging via een URL-kennisgeving.
Ondersteunde landen | Geen beperkingen voor landen van de klant. |
Ondersteunde munteenheden | AUD, CAD, CHF, DKK, EUR, GBP, HKD, JPY, KRW, NOK, NZD, SEK, SGD, THB, USD |
Terugbetalingen |
Volledige en gedeeltelijke terugbetaling toegestaan. |
Terugboekingen |
Betalingen zijn niet onderhevig aan terugboekingen. |
Zero-authorisation |
Niet ondersteund. |
Terugkerende betalingen |
Niet ondersteund. |
Configuratie
Om Alipay op uw account in te schakelen, neemt u contact op met uw accountmanager.
Er wordt een testzandbakaccount verstrekt, die u nodig hebt om uw implementatie te testen.
Deze integratie ondersteunt Alipay WAP Betalingen (Wireless Application Protocol)
Voordat u kunt beginnen met het verwerken van WAP Betalingen, moet u contact opnemen met Alipay en vragen of uw account is ingeschakeld voor WAP Betalingen.
Klik hier voor meer informatie over WAP Payments (link naar externe site).
Overzicht van Alipay
-
Initieer de klant
- De klant gaat akkoord met een betaling via Alipay op de app van de verkoper.
- Merchant dient AUTH verzoek in om de sessie te starten, inclusief returnurl.
- Merchant ontvangt AUTH antwoord, inclusief redirecturl.
-
Doorverwijzen naar Alipay
- De Merchant leidt de browser van de klant door naar de redirecturl.
- De klant volgt de instructies op Alipay om de betaling te autoriseren.
- De klant wordt doorgestuurd naar de returnurl, een door de handelaar gehoste pagina die de bevestiging van de betaling weergeeft.
-
Voltooiing van de betaling
- Op een later tijdstip neemt Alipay contact op met Trust Payments met de bevestiging dat het geld is overgemaakt.
- Trust Payments stuurt een URL-kennisgeving naar het systeem van de verkoper om te bevestigen dat het geld is vereffend.
- Merchant ontvangt de melding en reageert op Trust Payments om te bevestigen dat de melding succesvol is ontvangen.
1. Initieer de klant
Wanneer de klant ervoor kiest om te betalen met Alipay, moet uw systeem een AUTH verzoek uitvoeren en, indien succesvol, de browser van de klant omleiden naar de URL die in het antwoord wordt geretourneerd.
AUTH verzoek (E-commerce)
Het onderstaande voorbeeldverzoek is voor een e-commerce Alipay AUTH verzoek:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"returnurl": "https://www.example.com/return",
"currencyiso3a": "EUR",
"paymenttypedescription": "ALIPAY",
"requesttypedescriptions": ["AUTH"],
"sitereference": "test_site12345",
"accounttypedescription": "ECOM",
"billingcountryiso2a": "DE",
"baseamount": "1050",
"orderreference": "My_Order_123"
}
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(
'currencyiso3a' => 'EUR',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'ALIPAY',
'returnurl' => 'https://www.example.com/return',
'billingcountryiso2a' => 'DE',
'orderreference' => 'My_Order_123'
);
$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": "mike@ws.com",
"version": "1.00",
"request": [{
"currencyiso3a": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "ALIPAY",
"returnurl": "https://www.example.com/return",
"billingcountryiso2a": "DE",
"orderreference": "My_Order_123"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["AUTH"],
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"ALIPAY",
"returnurl":"https://www.example.com/return",
"billingcountryiso2a":"DE",
"orderreference":"My_Order_123"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>MyOrder123</orderreference>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<billing>
<amount currencycode="EUR">1050</amount>
<payment type="ALIPAY"/>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
AUTH verzoek (WAP betalingen)
Het onderstaande voorbeeldverzoek is voor een Alipay AUTH verzoek met behulp van de interface WAP betalingen:
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
auth = {
"returnurl": "https://www.example.com/return",
"currencyiso3a": "EUR",
"paymenttypedescription": "ALIPAY",
"requesttypedescriptions": ["AUTH"],
"sitereference": "test_site12345",
"accounttypedescription": "ECOM",
"billingcountryiso2a": "DE",
"baseamount": "1050",
"orderreference": "My_Order_123",
"applicationtype": "WAP"
}
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(
'currencyiso3a' => 'EUR',
'requesttypedescriptions' => array('AUTH'),
'accounttypedescription' => 'ECOM',
'sitereference' => 'test_site12345',
'baseamount' => '1050',
'paymenttypedescription' => 'ALIPAY',
'returnurl' => 'https://www.example.com/return',
'billingcountryiso2a' => 'DE',
'orderreference' => 'My_Order_123',
'applicationtype' => 'WAP'
);
$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": "mike@ws.com",
"version": "1.00",
"request": [{
"currencyiso3a": "EUR",
"requesttypedescriptions": ["AUTH"],
"accounttypedescription": "ECOM",
"sitereference": "test_site12345",
"baseamount": "1050",
"paymenttypedescription": "ALIPAY",
"returnurl": "https://www.example.com/return",
"billingcountryiso2a": "DE",
"orderreference": "My_Order_123",
"applicationtype": "WAP"
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"currencyiso3a":"EUR",
"requesttypedescriptions":["AUTH"],
"accounttypedescription":"ECOM",
"sitereference":"test_site12345",
"baseamount":"1050",
"paymenttypedescription":"ALIPAY",
"returnurl":"https://www.example.com/return",
"billingcountryiso2a":"DE",
"orderreference":"My_Order_123",
"applicationtype":"WAP"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>MyOrder123</orderreference>
<returnurl>https://www.example.com/return</returnurl>
</merchant>
<billing>
<amount currencycode="EUR">1050</amount>
<payment type="ALIPAY"/>
</billing>
<operation>
<sitereference>test_site12345</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
<applicationtype>WAP</applicationtype>
</operation>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | Alleen "ECOM" (e-commerce) wordt ondersteund. | |
baseamount XPath: /billing/amount |
Numeriek (13) | Het bedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt ingediend als 1000. Deze waarde moet groter zijn dan nul. (De maximumlengte kan variëren, afhankelijk van uw wervende bank - Neem contact op met uw bank voor meer informatie) | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie zal worden verwerkt (in ISO3A-formaat). Voor een lijst van Munt codes die worden ondersteund door Alipay, zie de lijst bovenaan deze pagina. |
|
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 in het Trust Payments systeem kan worden opgeslagen. | |
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | Deze waarde moet worden ingediend als "ALIPAY". | |
returnurl XPath: /merchant/returnurl |
URL (2048) | De URL waar de klant naar terugkeert na het verwerken van een betaling met Alipay. |
|
requesttypedescription XPath: /@type |
Alpha (20) | De waarde in het verzoek moet "AUTH" zijn. | |
sitereference XPath: /operation/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. | |
applicationtype XPath: /operation/applicationtype |
Alpha (3) |
Vereist bij gebruik van Alipay WAP interface. Bepaalt de betalingsinterface die aan de klant wordt getoond nadat hij is doorgestuurd naar de kassa die wordt gehost door Alipay:
Opmerking: Voordat u transacties verwerkt met WAP (zowel via de sandbox-omgeving als met live betalingen), moet u contact opnemen met Alipay en verzoeken om deze functionaliteit in te schakelen op uw Alipay account. |
AUTH antwoord
{
u'requestreference': u'An3ug1kap',
u'version': u'1.00',
u'responses': [{
u'transactionreference': u'23-86-113',
u'merchantname': u'Test Merchant',
u'paymenttypedescription': u'ALIPAY',
u'orderreference': u'My_Order_123',
u'settleduedate': u'2017-03-16',
u'baseamount': u'1050',
u'transactionstartedtimestamp': u'2017-03-16 16:25:08',
u'errormessage': u'Ok',
u'settlestatus': u'10',
u'accounttypedescription': u'ECOM',
u'errorcode': u'0',
u'redirecturl': u'https://example.com',
u'requesttypedescription': u'AUTH',
u'operatorname': u'webservices@example.com',
u'livestatus': u'0',
u'currencyiso3a': u'EUR',
u'partner id': u'2088611221573217'
}]
}
array(3) {
["requestreference"] => string(9) "A0345jmuw"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0]=> array(17) {
["transactionreference"] => string(9) "23-86-113"
["merchantname"] => string(4) "Test Merchant"
["paymenttypedescription"] => string(6) "ALIPAY"
["orderreference"] => string(12) "My_Order_123"
["transactionstartedtimestamp"] => string(19) "2017-03-16 16:25:08"
["errormessage"] => string(2) "Ok"
["accounttypedescription"] => string(4) "ECOM"
["errorcode"] => string(1) "0"
["settleduedate"] => string(10) "2017-03-16"
["currencyiso3a"] => string(3) "EUR"
["baseamount"] => string(4) "1050"
["redirecturl"] => string(107) "https://example.com"
["requesttypedescription"] => string(4) "AUTH"
["operatorname"] => string(11) "webservices@example.com"
["livestatus"] => string(1) "0"
["settlestatus"] => string(2) "10"
["partner id"] => string(16) "2088611221573217"
}
}
}
{
"requestreference":"W23-fjgvn3d8",
"version":"1.00",
"response":[{
"transactionreference":"23-86-113",
"merchantname":"Test Merchant",
"paymenttypedescription":"ALIPAY",
"orderreference":"My_Order_123",
"settleduedate":"2017-03-16",
"baseamount":"1050",
"transactionstartedtimestamp":"2017-03-16 16:25:08",
"errormessage":"Ok",
"settlestatus":"10",
"accounttypedescription":"ECOM",
"errorcode":"0",
"redirecturl":"https://example.com",
"requesttypedescription":"AUTH",
"operatorname":"webservices@example.com",
"livestatus":"0",
"currencyiso3a":"EUR",
"partner id":"2088611221573217"
}],
"secrand":"zO9"
}
<responseblock version="3.67">
<requestreference>Xd4nk260v</requestreference>
<response type="AUTH">
<merchant>
<merchantname>Test Merchant</merchantname>
<orderreference>MyOrder123</orderreference>
<operatorname>webservices@example.com</operatorname>
<partnerid>2088101122136241</partnerid>
</merchant>
<transactionreference>44-86-102</transactionreference>
<timestamp>2017-03-16 17:34:16</timestamp>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2017-03-16</settleduedate>
<settlestatus>10</settlestatus>
</settlement>
<billing>
<amount currencycode="EUR">1050</amount>
<payment type="ALIPAY"/>
</billing>
<live>0</live>
<other>
<redirecturl>https://example.com</redirecturl>
</other>
<error>
<message>Ok</message>
<code>0</code>
</error>
</response>
<secrand>Z1W</secrand>
</responseblock>
Specificatie veld
Veld | Formaat | Beschrijving | |
accounttypedescription XPath: /operation/accounttypedescription |
Alpha (20) | De geretourneerde waarde is "ECOM". | |
baseamount XPath: /billing/amount |
Numeriek (13) | Het bedrag van de transactie in basiseenheden, zonder komma's of decimalen, dus €10 wordt geretourneerd als 1000. | |
currencyiso3a XPath: /billing/amount/@currencycode |
Alpha (3) |
De Munt waarin de transactie werd verwerkt (in ISO3A-formaat). Voor een lijst van Munt codes die worden ondersteund door Alipay, 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. |
|
orderreference XPath: /merchant/orderreference |
Alfanumeriek, inclusief symbolen (25) |
De unieke orderreferentie die is opgeslagen in het systeem van Trust Payments en Alipay. |
|
partnerid XPath: /merchant/partnerid |
Numeriek (16) | Een unieke identificatiecode voor Alipay partners. |
|
paymenttypedescription XPath: /billing/payment/@type |
Alpha (20) | De geretourneerde waarde is "ALIPAY". | |
redirecturl XPath: /other/redirecturl |
URL (255) | Leid de browser van de klant om naar deze URL, zodat hij de betaling kan voltooien op Alipay's gehoste pagina's. | |
requesttypedescription XPath: /@type |
Alpha (20) | De geretourneerde waarde is "AUTH". | |
settlestatus XPath: /settlement/settlestatus |
Numeriek (3) | Hiermee kunt u de status van de betaling bepalen. Raadpleeg het gedeelte " Omgaan met het antwoord " hieronder voor informatie over hoe u dit veld het best kunt interpreteren. | |
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. |
Behandeling van het antwoord
Bij de behandeling van het antwoord op AUTH voor Alipay betalingen doen wij de volgende aanbevelingen controles om de volgende betalingen uit te voeren moeten nog steeds worden gevolgd, met uitzondering van de behandeling van de settlestatus veld, waarvoor verschillende voorwaarden gelden die hieronder nader worden toegelicht:
De settlestatus teruggestuurd in het antwoord op AUTH wordt gebruikt om de status van de betaling op Alipay te bepalen:
Als de settlestatus is "10", is de betaling in behandeling. afwikkeling
- Het geld is nog niet op uw bankrekening gestort.
- De volgende stap is het omleiden van de browser van de klant naar de redirecturl om de betaling te voltooien.
Het geld wordt pas op uw rekening gestort als de klant wordt doorgestuurd naar Alipay om de betaling te voltooien. Lees verder voor meer informatie.
- Wanneer er een update is van de Status betaling van de AUTH, ontvangt u een URL-kennisgeving om u te informeren dat de settlestatus is bijgewerkt tot "3" of "100".
- Nadere informatie over de kennisgevingen is hieronder te vinden.
Als de settlestatus is "3", de betaling is geannuleerd.
- De betaling is geweigerd of er is een fout opgetreden.
- Om meer te weten te komen over waarom de betaling niet is gelukt, moet u kijken naar de errorcode. bijv. "70000" geeft aan dat de betaling is geweigerd. Klik hier voor een volledige lijst met foutcodes.
- In zeldzame gevallen kan de settlestatus kan worden bijgewerkt van "3" tot "100" (wat betekent dat de betaling met succes is afgewikkeld). Als dit gebeurt, ontvangt u nog een URL-kennisgeving om u te informeren. Dit kan bijvoorbeeld komen doordat de klant rechtstreeks contact opneemt met Alipay om een probleem met zijn account op te lossen waardoor de betaling niet succesvol kon worden verwerkt.
2. Doorverwijzen naar Alipay
Na controle van het AUTH antwoord, als het verzoek succesvol was, moet u de browser van de klant omleiden naar de redirecturl in het antwoord.
Uw systeem moet de browser van de klant omleiden naar de redirecturl, een door Alipay gehoste pagina, om de betaling te verwerken. Op een later tijdstip, mits de klant de vereiste stappen op de door Alipaygehoste pagina's met succes heeft doorlopen, wordt de browser van de klant teruggeleid naar de returnurl verstrekt in het AUTH verzoek.
Bij het testen krijgt u de sandbox te zien die door Alipay ter beschikking wordt gesteld. Om een testtransactie te voltooien, moet u de instructies op het scherm volgen. Neem contact op met uw accountmanager voor testgegevens die u in de zandbak kunt invoeren.
3. Voltooiing van de betaling
Zodra de klant terugkeert van de Alipay gehoste pagina naar de returnurl gehost op uw site, raden wij u aan een bevestigingsbericht weer te geven waarin staat dat de betaling succesvol was.
Indien geconfigureerd, zal ons systeem een URL-kennisgeving indienen om u te informeren over de autorisatie. Na autorisatie zullen de fondsen op een later tijdstip worden vereffend, zoals bepaald door Alipay.
Het proces afwikkeling voor Alipay verschilt van het standaardproces dat wordt gevolgd bij betaalmethoden met een kaart.
De afwikkeling kennisgeving mag niet onmiddellijk na de verwerking van de AUTH
Daarom moet u een succes- of foutmelding aan de klant tonen onmiddellijk nadat hij terugkeert van Alipay's gehoste pagina's, en niet wachten op deze melding.
In het onwaarschijnlijke geval dat de betaling na 7 dagen nog in behandeling is bij afwikkeling (settlestatus "10"), zal dit worden ingepland voor onderzoek en zullen wij contact met u opnemen voor verdere informatie.
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 goedgekeurd.
- Als de fondsen vereffend zijn.
Configuratie van de autorisatie melding
Wij raden u aan ten minste de volgende velden op te nemen in uw autorisatie kennisgeving:
- Basisbedrag (baseamount) (bijv. 10,50 pond is "1050")*.
- Hoofdbedrag (mainamount) (bijv. 10,50 pond is "10,50")*.
- Land facturatie (billingcountryiso2a)
- Munt (currencyiso3a)
- Foutcode (errorcode)
- Live Status (livestatus)
- Bestelreferentie (orderreference)
- Betalingstype (paymenttypedescription)
- Verzoektype (requesttypedescription)
- Status betaling (settlestatus)
- Site referentie (sitereference)
- Transactiereferentie (transactionreference)
- Tijdstempel start transactie (transactionstartedtimestamp)
*Kies uw voorkeursformaat.
Configuratie van de afwikkeling melding
Wij raden aan de volgende velden op te nemen in URL-kennisgevingen die op afwikkeling worden verzonden:
- Status betaling (settlestatus)
- Site referentie (sitereference)
- Transactiereferentie (transactionreference)
Controleer de kennisgeving
U moet de inhoud van elke ontvangen kennisgeving controleren en dienovereenkomstig reageren door de 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 de fondsen niet gepland voor afwikkeling (opgeschort en geannuleerd, respectievelijk).
- Op afwikkeling: Als de settlestatus is bijgewerkt tot "100", betekent dit dat het geld is vereffend. Als dit echter is bijgewerkt tot "3", betekent dit dat er een probleem is geweest en dat de betaling vervolgens is geannuleerd.
Terugbetalingen
Na het verwerken van een betaling met Alipay, is het mogelijk om de klant terug te betalen door een REFUND verzoek in te dienen.
Restituties voor Alipay worden onmiddellijk verrekend (settlestatus "100").
Vereisten
- U kunt een betaling niet terugbetalen totdat de AUTH is voldaan (settlestatus is "100").
- U kunt niet een hoger bedrag terugbetalen dan oorspronkelijk was verrekend.
Het REFUND verzoek en antwoord voor Alipay betalingen volgen dezelfde veldspecificatie als in onze standaard REFUND documentatie. Klik hier voor meer informatie.