我正在尝试通过WHMCS API在我的本地环境下下订单。这是我的订单代码,
$postfields["action"] = "addorder";
$postfields["clientid"] = "104";
$postfields["billingcycle"] = "monthly";
$postfields["pid"] = "55";
$postfields['configoptions'] = base64_encode(serialize(array(1 => 3)));
$postfields["regperiod"] = "5";
$postfields["paymentmethod"] = "paypal";
API文档中列出了' configoptions',
$postfields['configoptions'] = base64_encode(serialize(array(1 => 3)));
^用于更改订单数量和其他选项(第一个元素用于数量)。问题是WHMCS生成的发票仅包含数量1而不是3。
----------------------------------------------- ---------- 编辑1 ------------------------------- -----------------------------------
我已查看了产品配置," 勾选此框以允许客户在订购时指定他们是否需要超过1件此商品"选项也被勾选了!
答案 0 :(得分:0)
游戏有点晚了,但是哦。
在当前有关AddOrder函数的WHMCS API文档中,我还找不到任何关于数量的信息,我有一种感觉,这就是简单地启用订单表单中的输入,而WHMCS则以某种方式处理输入。
>我确实找到了一种可能对您有用的方法。我不确定如果该API是由某个地方的自定义表单驱动的,那么您实际上如何使用该API,但是您可以执行以下操作。
代替:$postfields['configoptions'] = base64_encode(serialize(array(1 => 3)));
似乎无效,您可以使用“ pid”字段指定数量,例如:
$quantity = trim(str_repeat("{$pid},", $_POST['qty']), ',');
$postfields["pid"] = $quantity;
只需将产品ID重复多次即可设置数量,您可以使用本地API函数执行基本相同的操作,如下所示:
$quantity = array_fill(0, $_POST['qty'], $pid);
$command = 'AddOrder';
$postData = array(
'clientid' => '1',
'pid' => $quantity,
'domain' => array('example.com'),
'billingcycle' => array('monthly'),
'paymentmethod' => 'PayPal',
);
以上代码的结果将是一个订单,但是在$pid
中指定了许多产品($_POST['qty']
)