2016-12-01 1 views
1

Ich versuche, die duplicateWindow Zeit eingestellt werden:mit setTransactionSettings im Authorize.net PHP API

$transactionRequestType->setTransactionSettings(); 

fand ich dies im Code PHP SDK,

public function setTransactionSettings(array $transactionSettings) {...} 

Das hat mich diese Methode erzählt akzeptiert ein Array, aber ich bin mir nicht sicher, wie ich die Daten formatiere, die ich sende.

fand ich die XML-Version:

<transactionSettings> 
    <setting> 
     <settingName>duplicateWindow</settingName> 
     <settingValue>0</settingValue> 
    </setting> 
</transactionSettings> 

Aber ich bin nicht sicher, wie das in einen PHP-Array zu übersetzen.

Danke,

D

Antwort

0

Dies funktioniert, wenn Sie nur eine einzige Einstellung festlegen möchten.

Ich versuche immer noch herauszufinden, wie mehrere Einstellungen festlegen (Sie erhalten doppelte Schlüsselprobleme, wenn Sie versuchen, mehr als eine zu setzen).

$transactionSettings = array(
    'setting' => array(
     'settingName' => 'duplicateWindow', 
     'settingValue' => 0 
    ) 
); 
0

Hier ist die Lösung, die ich am Ende benutze und es funktioniert gut.

$duplicateWindowSetting = new AnetAPI\SettingType(); 
$duplicateWindowSetting->setSettingName("duplicateWindow"); 
$duplicateWindowSetting->setSettingValue("120"); 

$transactionRequestType->addToTransactionSettings($duplicateWindowSetting); 

Um mehrere neue Einstellungen hinzufügen, wäre es ziemlich ähnlich sein, nur eine neue Instanz der Klasse SettingType machen() für jede andere Einstellung Sie wollten.

Etwas wie:

//add the values for each setting 
$duplicateWindowSetting = new AnetAPI\SettingType(); 
$duplicateWindowSetting->setSettingName("duplicateWindow"); 
$duplicateWindowSetting->setSettingValue("600"); 

$allowPartialAuthSetting = new AnetAPI\SettingType(); 
$allowPartialAuthSetting->setSettingName("allowPartialAuth"); 
$allowPartialAuthSetting->setSettingValue("true"); 

und so weiter, dann jede Transaktion zur Ergänzung der Transaktionsanforderung Einstellung von etwas wie tun:

$transactionRequestType->addToTransactionSettings($duplicateWindowSetting); 
$transactionRequestType->addToTransactionSettings($allowPartialAuthSetting); 
Verwandte Themen