De volgende inhoud gaat ervan uit dat u de noodzakelijke PCI-certificering hebt verkregen om gevoelige kaarthoudergegevens te verwerken en in te dienen in het verzoek aan onze Webservices API.
Lees dit artikel voor meer informatie.
Om details van een reeds gepland abonnement te bekijken, kunt u een TRANSACTIONQUERY verzoek indienen, waarbij u de transactionreference van de SUBSCRIPTION. Het teruggestuurde antwoord bevat velden met informatie over toekomstige geplande betalingen.
Voorbeeld aanvraag
De structuur van het verzoek is dezelfde als een standaard TRANSACTIONQUERY verzoek.
U moet de Transactiereferentie van de oorspronkelijke SUBSCRIPTION doorgeven, en niet de transactiereferenties van eventuele authorisaties die automatisch door de subscription engine worden verwerkt.
#!/usr/bin/python
import securetrading
stconfig = securetrading.Config()
stconfig.username = "webservices@example.com"
stconfig.password = "Password1^"
st = securetrading.Api(stconfig)
query = {
"requesttypedescriptions": ["TRANSACTIONQUERY"],
"filter":{
"sitereference": [{"value":"test_site12345"}],
"transactionreference": [{"value":"12-3-2"}]
}
}
strequest = securetrading.Request()
strequest.update(query)
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(
'requesttypedescriptions' => array('TRANSACTIONQUERY'),
'filter' => array(
'sitereference' => array(array('value' => 'test_site12345')),
'transactionreference' => array(array('value' => '12-3-2'))
)
);
$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": [{
"requesttypedescriptions": ["TRANSACTIONQUERY"],
"filter":{
"sitereference": [{"value":"test_site12345"}],
"transactionreference": [{"value":"12-3-2"}]
}
}]
}'
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"requesttypedescriptions":["TRANSACTIONQUERY"],
"filter":{
"sitereference":[{"value":"test_site12345"}],
"transactionreference":[{"value":"12-3-2"}]
}
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="TRANSACTIONQUERY">
<filter>
<sitereference>test_site12345</sitereference>
<transactionreference>12-3-2</transactionreference>
</filter>
</request>
</requestblock>
Vervang <DOMAIN>
met een ondersteund domein. Klik hier voor een volledige lijst.
Voorbeeld van een antwoord
Nadat u met succes een TRANSACTIONQUERY verzoek hebt ingediend, krijgt u een antwoord terug. Het antwoord heeft een soortgelijke structuur als een standaard TRANSACTIONQUERY antwoord, met toevoeging van extra abonnementsvelden.
In gevallen van subscriptionnumber met een hogere waarde dan de subscriptionfinalnumber in het antwoord staat voor een voltooid abonnement, en worden er geen verdere authorisaties verwerkt.
{
u 'requestreference': u 'A1wqmc662',
u 'version': u '1.00',
u 'responses': [{
u 'transactionstartedtimestamp': u '2017-09-28 07:41:14',
u 'errormessage': u 'Ok',
u 'errorcode': u '0',
u 'records': [{
u 'transactionstartedtimestamp': u '2018-02-01 00:00:00',
u 'parenttransactionreference': u '23-9-80027',
u 'interface': u 'PASS-JSON-JSON',
u 'subscriptionnumber': u '2',
u 'livestatus': u '0',
u 'errorcode': u '0',
u 'baseamount': u '1050',
u 'sitereference': u 'test_site12345',
u 'subscriptionfinalnumber': u '12',
u 'subscriptionunit': u 'MONTH',
u 'transactionreference': u '1-2-345679',
u 'paymenttypedescription': u 'VISA',
u 'transactionactive': u '2',
u 'orderreference': u 'My_Order_123',
u 'subscriptiontype': u 'RECURRING',
u 'accounttypedescription': u 'RECUR',
u 'updatereason': u 'subscription',
u 'requesttypedescription': u 'SUBSCRIPTION',
u 'expirydate': u '10/2031',
u 'currencyiso3a': u 'GBP',
u 'subscriptionbegindate': u '2018-01-01',
u 'maskedpan': u '411111######1111',
u 'errormessage': u 'Ok',
u 'subscriptionfrequency': u '1',
u 'operatorname': u 'webservices@example.com'
}],
u 'found': u '1',
u 'requesttypedescription': u 'TRANSACTIONQUERY'
}]
}
array(3) {
["requestreference"] => string(9) "A48adkmtv"
["version"] => string(4) "1.00"
["responses"] => array(1) {
[0] => array(6) {
["transactionstartedtimestamp"] => string(19) "2017-09-28 07:41:14"
["errormessage"] => string(2) "Ok"
["errorcode"] => string(1) "0"
["records"] => array(1) {
[0] => array(25) {
["transactionstartedtimestamp"] => string(19) "2018-02-01 00:00:00"
["parenttransactionreference"] => string(10) "23-9-80027"
["interface"] => string(14) "PASS-JSON-JSON"
["subscriptionnumber"] => string(1) "2"
["livestatus"] => string(1) "0"
["errorcode"] => string(1) "0"
["baseamount"] => string(4) "1050"
["sitereference"] => string(14) "test_site12345"
["subscriptionfinalnumber"] => string(2) "12"
["subscriptionunit"] => string(5) "MONTH"
["transactionreference"] => string(10) "1-2-345679"
["paymenttypedescription"] => string(4) "VISA"
["transactionactive"] => string(1) "2"
["orderreference"] => string(12) "My_Order_123"
["subscriptiontype"] => string(9) "RECURRING"
["accounttypedescription"] => string(5) "RECUR"
["updatereason"] => string(12) "subscription"
["requesttypedescription"] => string(12) "SUBSCRIPTION"
["expirydate"] => string(7) "10/2031"
["currencyiso3a"] => string(3) "GBP"
["subscriptionbegindate"] => string(10) "2018-01-01"
["maskedpan"] => string(16) "411111######1111"
["errormessage"] => string(2) "Ok"
["subscriptionfrequency"] => string(1) "1"
["operatorname"] => string(23) "webservices@example.com"
}
}
["found"] => string(1) "1"
["requesttypedescription"] => string(16) "TRANSACTIONQUERY"
}
}
}
{
"requestreference":"W23-b6m1wubf",
"version":"1.00",
"response":[{
"transactionstartedtimestamp":"2017-09-28 07:41:14",
"errormessage":"Ok",
"errorcode":"0",
"records":[{
"transactionstartedtimestamp":"2018-02-01 00:00:00",
"parenttransactionreference":"23-9-80027",
"interface":"PASS-JSON-JSON",
"subscriptionnumber":"2",
"livestatus":"0",
"errorcode":"0",
"baseamount":"1050",
"sitereference":"test_site12345",
"subscriptionfinalnumber":"12",
"subscriptionunit":"MONTH",
"transactionreference":"1-2-345679",
"paymenttypedescription":"VISA",
"transactionactive":"2",
"orderreference":"My_Order_123",
"subscriptiontype":"RECURRING",
"accounttypedescription":"RECUR",
"updatereason":"subscription",
"requesttypedescription":"SUBSCRIPTION",
"expirydate":"10\/2031",
"currencyiso3a":"GBP",
"subscriptionbegindate":"2018-01-01",
"maskedpan":"411111######1111",
"errormessage":"Ok",
"subscriptionfrequency":"1",
"operatorname":"webservices@example.com"
}],
"found":"1",
"requesttypedescription":"TRANSACTIONQUERY"
}],
"secrand":"WP6R1la0A"
}
<responseblock version="3.67">
<requestreference>X78030262</requestreference>
<response type="TRANSACTIONQUERY">
<found>1</found>
<timestamp>2016-03-11 10:05:52</timestamp>
<record type="SUBSCRIPTION">
<merchant>
<orderreference>My_Order_123</orderreference>
<operatorname>webservices@example.com</operatorname>
</merchant>
<transactionreference>1-2-345679</transactionreference>
<billing>
<payment type="VISA">
<expirydate>10/2031</expirydate>
<active>2</active>
<pan>4111########1111</pan>
</payment>
<subscription type=”RECURRING”>
<finalnumber>12</finalnumber>
<begindate>2016-02-05</begindate>
<number>2</number>
<frequency>1</frequency>
<unit>MONTH</unit>
</subscription>
<amount currencycode="GBP">1000</amount>
</billing>
<timestamp>2016-03-05 00:00:00</timestamp>
<live>0</live>
<error>
<message>Ok</message>
<code>0</code>
</error>
<operation>
<parenttransactionreference>23-9-80027</parenttransactionreference>
<interface>CERT-XML-XML</interface>
<sitereference>test_site12345</sitereference>
<accounttypedescription>RECUR</accounttypedescription>
</operation>
<settlement>
<updatereason>subscription</updatereason>
</settlement>
</record>
<error>
<message>Ok</message>
<code>0</code>
</error>
</response>
<secrand>SC48</secrand>
</responseblock>
Specificatie veld
Als een standaard TRANSACTIONQUERY antwoord, bevat het antwoord een errorcode, en andere basisvelden met betrekking tot de TRANSACTIONQUERY, op het hoogste niveau. Het antwoord zal een record bevatten, en genest in deze record is informatie over de SUBSCRIPTION. De velden die in deze record worden teruggezonden, worden hieronder beschreven:
Veld | Formaat | Beschrijving | |
errorcode XPath: /record/error/code |
Numeriek (1-5) |
Dit geeft een indicatie of het oorspronkelijke SUBSCRIPTION verzoek met succes is verwerkt.
Klik hier voor een volledige lijst van errorcode en berichtwaarden. |
|
transactionactive XPath: /record/billing/payment/active |
Numeriek (1) |
De abonnementsstatus. "0" - Inactief: Betalingen opgeschort totdat ze handmatig worden opgeheven (klik hier voor informatie over het bijwerken van abonnementen). "1" - Actief: Abonnement is actief. Betalingen worden op regelmatige tijdstippen verwerkt. "2" - In afwachting (standaard): Abonnementsbetalingen in de wacht totdat aan de volgende voorwaarde is voldaan:
|
|
requesttypedescription XPath: /record/@type |
Alpha (20) | Dit wordt "SUBSCRIPTION". | |
sitereference XPath: /record/operation/sitereference |
Alfanumeriek & underscore (50) |
De site referentie waarlangs het abonnement wordt verwerkt. | |
subscriptionbegindate XPath: /record/billing/subscription/begindate |
Datum JJJJ-MM-DD | Voor informatie over het gebruik van abonnementsvelden, zie onze Abonnementsmodule documentatie. | |
subscriptionfinalnumber XPath: /record/billing/subscription/finalnumber |
Numeriek (5) | ||
subscriptionfrequency XPath: /record/billing/subscription/frequency |
Numeriek (11) | ||
subscriptionnumber XPath: /record/billing/subscription/number |
Numeriek (5) | ||
subscriptiontype XPath: /record/billing/subscription/@type |
Alfa (10) | ||
subscriptionunit XPath: /record/billing/subscription/unit |
Alfa (10) | ||
transactionreference XPath: /record/transactionreference |
Alfanumeriek, inclusief koppeltekens (25) |
De Transactiereferentie waarde geassocieerd met het SUBSCRIPTION verzoek. |