Benutzer-Werkzeuge

Webseiten-Werkzeuge


engine:procedures:om_redeemprepaidcode_pu

om_RedeemPrepaidCode_Pu

Löst einen „PrepaidCode“ ein, wodurch das Guthaben-Konto einer Person „aufgeladen“ wird. Das geht natürlich nur, wenn der Code…

  • existiert,
  • noch gültig ist und
  • noch nicht einglöst wurde.

Hinweis : „Guthaben“-Konto bedeutet das Konto des identifizierten Inhabers zur Kontoart „Guthaben“ („CashAccountTypeID = 1“) - die Kontoart ist also in der Prozedur hart codiert und kann nicht angegeben werden.

Anmerkung zum Parameter „PrepaidCode“ :

Mögliche Werte für einen „PrepaidCode“ sind Auftrags-Positions-Informationen zur Informations-Art „PrepaidCode“ (ID „25“), die für „Gutschein-Artikel“ (wodurch natürlich auch der Wert bestimmt ist) generiert wurden. Unter einem „Gutschein-Artikel“ sind Artikel mit der Eigenschaft „1“ zum Merkmal „Prepaid-Code Artikel“ (ID „25“) zu verstehen. Generiert wird ein Code für einen solchen „Gutschein-Artikel“ genau dann, wenn die entsprechende Position in einen Status der Kategorie „Prepaid-Code generieren“ (ID „4“) wechselt.

HTTP-MethodPOST
HTTP-AuthOptional
Tags
Engine-Kategorieorder management
Engine-TypDaten-Änderung
Letzte Aktualisierung7.0.7 (2015-01-29)

Parameter

Name 1) Standard-Wert Beschreibung 2) SQL-Datentyp3) ab Version
PrepaidCode Ein Code, mit dem das (Guthaben-)Konto aufgeladen werden soll. Mögliche Werte sind Auftrags-Positions-Informationen zur Informations-Art „PrepaidCode“ (ID „25“), die für „Gutschein-Artikel“ (wodurch natürlich auch der Wert bestimmt ist) generiert wurden.
varchar(50)6.0.2
PersonIdentificationValues Liste von Werten, die den Kontoinhaber identifizieren. Diese Werte müssen Eigenschaften zu den Merkmal-IDs sein, die in „PersonTypeSettings“ zur „PersonTypeID“ zum Schlüssel „PersonIdentificationIDs“ hinterlegt sind.
varchar(255)6.0.2
PersonTypeID ID des Personen-Typs dem die zu identifizierende Person angehört. Dieser muß bei einer Identifizierung immer mit angegeben werden, da die Merkmale zur Identifizierung pro Personentyp variieren können.
tinyint6.0.2
UniqueID Eindeutige ID eines Besuchers, die der zu identifizierenden Person zuzuordnen ist. Wenn die Identifizierungsdaten bereits in „SessionManagement“ (zur „UniqueID“) gespeichert sind, darf „PersonIdentificationValues“ „NULL“ sein bzw. den Wert '' enthalten.
varchar(50)6.0.2
TransactionComment Hier muß (!) man eine Bemerkung angeben, die zu der aus der Einlösung resultierenden Transaktion (übrigens zur Transaktions-Art „Guthabenaufladung durch Codeeingabe“, ID „5“) hinterlegt wird (und die dem Kontoinhaber angezeigt wird).
varchar(100)6.0.2
SeparatorInIdentVals'¶' Gibt an, durch welche Zeichenkette die Werte in „PersonIdentificationValues“ getrennt sind
varchar(4)6.0.2

Rückgabe

Die Prozedur hat keine Rückgaben.

Output-Parameter

Die Prozedur hat keine Output-Parameter.

Mögliche Return-Codes

Code Beschreibung Quelle 4)
-1323Die Person besitzt kein Konto zum angegebenen Typnur indirekt
-1322Transaktion kann nicht durchgeführt weden, da der Status des Kontos dies nicht erlaubtnur indirekt
-1321Transaktion kann nicht durchgeführt weden, da das Konto keine ausreichende Deckung aufweistnur indirekt
-1303Validierung fehlgeschlagen, da die maximale Menge an Einlösungen für diesen Code erreicht istnur indirekt
-1302Validierung fehlgeschlagen, da der Code nicht mehr gültig istnur indirekt
-1301Validierung fehlgeschlagen, da der Code nicht existiertnur indirekt
-660Identifikation fehlgeschlagennur indirekt
-621Fehlender oder falscher Eintrag in PersonTypeSettingsnur indirekt
-602Zur defaultUniqueID („VisitorID = -2“) können keinerlei Daten gespeichert oder verändert werdennur indirekt
-599Lizenz ist ungültig oder abgelaufennur indirekt
-569Der Benutzer hat kein Ausführungsrecht für die Prozedurnur indirekt
-567Die Prozedur darf z. Zt. nicht ausgeführt werdennur indirekt
-566Die Prozedur darf mit den übergebenen Parametern nicht ausgeführt werdennur indirekt
-550Fehlender oder falscher Eintrag in Settingsnur indirekt
-535Das Datum liegt nicht in der Vergangenheitnur indirekt
-530Der Wert ist nicht konvertierbarnur indirekt
-510Der Benutzer ist nicht registriertnur indirekt
-504Es ist ein Problem aufgetreten, das nicht gelöst werden kann, Prozedur wird daher abgebrochennur indirekt
-503Fehlerhafte Daten in einer Tabelle - genauere Fehlermeldung auf der Standardausgabenur indirekt
-502Die Parameter-Werte der Prozedur können nicht verarbeitet werden (kein passendes Trennzeichen)nur indirekt
-501Der Parameter „TableID“ und/oder der Parameter „TableKeyID“ ist ungültignur indirekt
-500Falsche Parameternur indirekt

XML-Schema

Die Rückgabe erfolgt als XML-Dokument welches gegen das Schema Response/EngineProcedure_v1_0.xsd validiert.

Historie

7.0.7 2015-01-29„Start-/Finish-Procedure“-Logik eingebaut, s. Ticket #3670
6.5.4 2013-04-29Parameter „SeparatorInIdentVals“ auf „varchar[4]“ erweitert wg. UTF-Unterstützung
6.0.2 2011-06-08Erstmalig in dieser Version erstellt

Code-Snippets

Engine Playground

Der folgende Link öffnet in einem separaten Fenster den Engine Playground der fest mit dem dbap-demo System verbunden ist:

cURL

Unformatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/om_RedeemPrepaidCode_Pu?PrepaidCode=<value>&PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&TransactionComment=<value>'

Mit xmllint 5) formatierte Ausgabe:

curl -X POST  'http://<partner>-<project>.dstore.de/default/engine/om_RedeemPrepaidCode_Pu?PrepaidCode=<value>&PersonIdentificationValues=<value>&PersonTypeID=<value>&UniqueID=<value>&TransactionComment=<value>' | xmllint --format -
dStore_php
use dStore_php\WebService;
 
$service = new WebService\Service( WebService\Scheme::HTTP,'<partner>-<project>.dstore.de', 80);
 
$request = new WebService\Requests\Engine\Procedure\Request(
			new WebService\Requests\AccessData('default'),
	'om_RedeemPrepaidCode_Pu',
		array(
			'PrepaidCode' => '<value>',
			'PersonIdentificationValues' => '<value>',
			'PersonTypeID' => <value>,
			'UniqueID' => '<value>',
			'TransactionComment' => '<value>',
			// 'SeparatorInIdentVals' => '¶'
		)
);
 
$service->execute($request);
 
			$xml_result = $request->getResponse()->getBody()->toSimpleXmlDocument();
			$ResultSet = $xml_result->getRowsAsArray();
engine/execute

XML zur Ausführung mit der Methode engine/execute, z.B. per

curl --header 'Content-Type: application/xml' -X POST 'http://<partner>-<kunde>.dstore.de/default/engine/execute' -d '<xml-daten>'
<?xml version="1.0" encoding="UTF-8"?>
<ListOfBatches>
	<Batch No="0">
		<Procedure Name="om_RedeemPrepaidCode_Pu">
			<Parameters>
				<Parameter Name="PrepaidCode"><!-- varchar value --></Parameter>
				<Parameter Name="PersonIdentificationValues"><!-- varchar value --></Parameter>
				<Parameter Name="PersonTypeID"><!-- tinyint value --></Parameter>
				<Parameter Name="UniqueID"><!-- varchar value --></Parameter>
				<Parameter Name="TransactionComment"><!-- varchar value --></Parameter>
				<!-- <Parameter Name="SeparatorInIdentVals">'¶'</Parameter> -->
			</Parameters>
		</Procedure>
	</Batch>
</ListOfBatches>
1)
Pflichtparameter sind unterstrichen
4)
direkt meint „von der Prozedur selber“ und indirekt meint „von intern aufgerufenen Unterprozeduren“
5)
I.d.R. auf Unix-artigen Systemen bereits installiert, Bestandteil der libxml2, siehe http://www.xmlsoft.org
engine/procedures/om_redeemprepaidcode_pu.txt · Zuletzt geändert: 11.01.2016 (Externe Bearbeitung)