2016-12-01 58 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);