Der folgende Inhalt setzt voraus, dass Sie die erforderliche PCI-Zertifizierung erhalten haben, um sensible Karteninhaberdaten in der Anfrage an unsere Webservices API zu verarbeiten und zu übermitteln.
Lesen Sie diesen Artikel, um mehr zu erfahren.
Um die Details eines bereits geplanten Abonnements anzuzeigen, können Sie eine Anfrage an TRANSACTIONQUERY senden, die über die transactionreference der SUBSCRIPTION. Die zurückgesendete Antwort enthält Felder mit Informationen über künftige geplante Zahlungen.
Beispiel anfordern
Die Struktur der Anfrage ist die gleiche wie bei einer Standardanfrage an TRANSACTIONQUERY .
Sie müssen die Transaktionsnummer der ursprünglichen SUBSCRIPTION durchreichen und nicht die Transaktionsreferenzen von Autorisierungen , die automatisch von der Abonnement-Engine verarbeitet werden.
#!/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>
Ersetzen Sie <DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Beispiel für eine Antwort
Nachdem Sie eine TRANSACTIONQUERY Anfrage erfolgreich abgeschickt haben, erhalten Sie eine Antwort zurück. Die Antwort hat eine ähnliche Struktur wie eine Standardantwort von TRANSACTIONQUERY, enthält aber zusätzliche Abonnementfelder.
In Fällen von subscriptionnumber einen höheren Wert hat als die subscriptionfinalnumber in der Antwort, so ist das Abonnement abgeschlossen und es werden keine weiteren Autorisierungen bearbeitet.
{
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>
Feldspezifikation
Wie ein Standardantwort TRANSACTIONQUERY, enthält die Antwort eine errorcode, und andere grundlegende Felder, die sich auf die TRANSACTIONQUERY beziehen, auf der höchsten Ebene. Die Antwort enthält einen Datensatz mit Informationen über SUBSCRIPTION. Die in diesem Datensatz enthaltenen Felder werden im Folgenden beschrieben:
Feld | Format | Beschreibung | |
errorcode XPath: /record/error/code |
Numerisch (1-5) |
Dies gibt Aufschluss darüber, ob die ursprüngliche Anfrage SUBSCRIPTION erfolgreich bearbeitet wurde.
Klicken Sie hier für eine vollständige Liste der errorcode und Nachrichtenwerte. |
|
transactionactive XPath: /record/billing/payment/active |
Numerisch (1) |
Der Status des Abonnements. "0" - Inaktiv: Zahlungen werden ausgesetzt, bis sie manuell überschrieben werden(klicken Sie hier für Informationen zur Aktualisierung von Abonnements). "1" - Aktiv: Das Abonnement ist aktiv. Die Zahlungen werden in regelmäßigen Abständen verarbeitet. "2" - Ausstehend (Standard): Abonnementzahlungen werden angehalten, bis die folgende Bedingung erfüllt ist:
|
|
requesttypedescription XPath: /record/@type |
Alpha (20) | Dies wird "SUBSCRIPTION" sein. | |
sitereference XPath: /record/operation/sitereference |
Alphanumerisch & Unterstrich (50) |
Die Website-Referenz , über die das Abonnement abgewickelt wird. | |
subscriptionbegindate XPath: /record/billing/subscription/begindate |
Datum JJJJ-MM-TT | Informationen zur Verwendung von Abonnement-Feldern finden Sie in unserer Abonnementmodul-Dokumentation. | |
subscriptionfinalnumber XPath: /record/billing/subscription/finalnumber |
Numerisch (5) | ||
subscriptionfrequency XPath: /record/billing/subscription/frequency |
Numerisch (11) | ||
subscriptionnumber XPath: /record/billing/subscription/number |
Numerisch (5) | ||
subscriptiontype XPath: /record/billing/subscription/@type |
Alpha (10) | ||
subscriptionunit XPath: /record/billing/subscription/unit |
Alpha (10) | ||
transactionreference XPath: /record/transactionreference |
Alphanumerisch einschließlich Bindestriche (25) |
Der Transaktionsnummer Wert, der mit der SUBSCRIPTION Anfrage verbunden ist. |