2016-12-01 57 views
1

我試圖用設置duplicateWindow時間:使用setTransactionSettings的Authorize.net PHP API

$transactionRequestType->setTransactionSettings(); 

我發現這個在PHP SDK代碼,

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

這告訴我這個方法接受一個數組,但我不知道如何格式化我發送的數據。

我發現XML版本:

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

但我不知道如何翻譯成PHP數組。

感謝,

d

回答

0

這工作,如果你只需要設置一個單一的設置。

我仍在試圖找出如何設置多個設置(如果您嘗試設置多個設置,則會出現重複的關鍵問題)。

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

這是我最終使用的解決方案,它工作正常。

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

$transactionRequestType->addToTransactionSettings($duplicateWindowSetting); 

要添加多個新的設置,這將是非常相似的,只是讓類SettingType()的一個新實例,找你想要的每個不同的設置。

喜歡的東西:

//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"); 

等,然後通過做一些如添加每筆交易設定的交易請求:

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