向客户添加订单。对于更多的流程控制,此方法忽略“下订单后自动设置产品”。选项。当您调用此方法时,您必须对 AcceptOrder 进行后续显式调用。
请求参数
参数 | 类型 | 说明 | 必需的 |
---|---|---|---|
action | string | “AddOrder” | Required |
clientid | int | Required | |
paymentmethod | string | 系统格式中订单的支付方式。例如:贝宝,邮寄 | Required |
pid | int[] | 要为其添加订单的产品 ID 数组 | Optional |
domain | string[] | 与产品/域关联的域名数组 | Optional |
billingcycle | string[] | 产品的计费周期数组 | Optional |
domaintype | string[] | 对于域注册,一组寄存器或传输值 | Optional |
regperiod | int[] | 对于域注册,按顺序排列的域的注册期限 | Optional |
idnlanguage | string[] | 用于 IDN 域注册。正在注册的域的语言代码 | Optional |
eppcode | string[] | 对于域名转移。按顺序转移的域的 epp 代码 | Optional |
nameserver1 | string | 按顺序应用于所有域的第一个名称服务器 | Optional |
nameserver2 | string | 按顺序应用于所有域的第二个名称服务器 | Optional |
nameserver3 | string | 按顺序应用于所有域的第三个名称服务器 | Optional |
nameserver4 | string | 按顺序应用于所有域的第四个名称服务器 | Optional |
nameserver5 | string | 按顺序应用于所有域的第五个名称服务器 | Optional |
customfields | string[] | 产品自定义字段值的 base64 编码序列化数组 | Optional |
configoptions | string[] | 产品可配置选项值的 base64 编码序列化数组 | Optional |
priceoverride | float[] | 覆盖所排序产品的价格 | Optional |
promocode | string | 应用于订单的促销代码 | Optional |
promooverride | bool | 即使没有匹配的促销产品,促销是否也适用于订单 | Optional |
affid | int | 与订单关联的会员 ID | Optional |
noinvoice | bool | 设置为 true 以禁止为整个订单生成发票 | Optional |
noinvoiceemail | bool | 设置为 true 以禁止为订单发送 Invoice Created 电子邮件 | Optional |
noemail | bool | 设置为 true 以禁止发送订单确认电子邮件 | Optional |
addons | string[] | 以逗号分隔的插件列表,可按产品订单创建 | Optional |
hostname | string[] | VPS/专用服务器订单的服务器主机名 | Optional |
ns1prefix | string[] | VPS/专用服务器的第一个名称服务器前缀。例如: ns1.hostname.com 中的 ns1 | Optional |
ns2prefix | string[] | VPS/专用服务器的第二个名称服务器前缀。例如: ns2 中的 ns2.hostname.com | Optional |
rootpw | string[] | VPS/专用服务器所需的根密码。 | Optional |
contactid | int | 与客户相关联的联系人 ID,应适用于订单中的所有域 | Optional |
dnsmanagement | bool[] | 将 DNS 管理添加到域顺序 | Optional |
domainfields | string[] | TLD 特定字段值的 base64 编码序列化数组 | Optional |
emailforwarding | bool[] | 将电子邮件转发添加到域订单 | Optional |
idprotection | bool[] | 将 ID 保护添加到域订单 | Optional |
domainpriceoverride | float[] | 覆盖所排序域名的注册价格 | Optional |
domainrenewoverride | float[] | 覆盖所排序域的续订价格 | Optional |
domainrenewals | array | 一个名称 -> $domainName 的值数组 -> $renewalPeriod 续订以添加订单 | Optional |
clientip | string | 与订单关联的 IP 地址 | Optional |
addonid | int | 仅插件订单的插件 ID | Optional |
serviceid | int | 仅插件订单的服务 ID | Optional |
addonids | int[] | 仅插件订单的插件 ID 数组 | Optional |
serviceids | int[] | 一个服务 ID 数组,用于关联 Addon Only 订单的插件 | Optional |
响应参数
参数 | 类型 | 说明 |
---|---|---|
result | string | 操作结果:成功或错误 |
orderid | int | 已创建订单的订单 ID |
serviceids | string | 订单创建的服务 ID |
addonids | string | 订单创建的插件 ID |
domainids | string | 订单创建的域 ID |
invoiceid | int | 为订单创建的发票 ID |
示例请求 (CURL)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
http_build_query(
array(
'action' => 'AddOrder',
// See https://developers.whmcs.com/api/authentication
'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
'password' => 'SECRET_OR_HASHED_PASSWORD',
'clientid' => '1',
'pid' => array(1,1),
'domain' => array('domain1.com', 'dómáin2.com'),
'idnlanguage' => array('', 'fre'),
'billingcycle' => array('monthly','semiannually'),
'addons' => array('1,3,9', ''),
'customfields' => array(base64_encode(serialize(array("1" => "Google"))), base64_encode(serialize(array("1" => "Google")))),
'configoptions' => array(base64_encode(serialize(array("1" => 999))), base64_encode(serialize(array("1" => 999)))),
'domaintype' => array('register', 'register'),
'regperiod' => array(1, 2),
'dnsmanagement' => array(0 => false, 1 => true),
'nameserver1' => 'ns1.demo.com',
'nameserver2' => 'ns2.demo.com',
'paymentmethod' => 'mailin',
'responsetype' => 'json',
)
)
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
示例请求(本地 API)
$command = 'AddOrder';
$postData = array(
'clientid' => '1',
'pid' => array(1,1),
'domain' => array('domain1.com', 'dómáin2.com'),
'idnlanguage' => array('', 'fre'),
'billingcycle' => array('monthly','semiannually'),
'addons' => array('1,3,9', ''),
'customfields' => array(base64_encode(serialize(array("1" => "Google"))), base64_encode(serialize(array("1" => "Google")))),
'configoptions' => array(base64_encode(serialize(array("1" => 999))), base64_encode(serialize(array("1" => 999)))),
'domaintype' => array('register', 'register'),
'regperiod' => array(1, 2),
'dnsmanagement' => array(0 => false, 1 => true),
'nameserver1' => 'ns1.demo.com',
'nameserver2' => 'ns2.demo.com',
'paymentmethod' => 'mailin',
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later
$results = localAPI($command, $postData, $adminUsername);
print_r($results);
示例响应 JSON
{
"result": "success",
"orderid": "1",
"serviceids": "1,2",
"addonids": "1,2,3",
"domainids": "1,2",
"invoiceid": "1"
}
错误响应
可能的错误条件响应包括:
- 未找到客户端 ID
- 客户状态为已关闭时无法添加订单
- 付款方式无效。有效选项包括
- 插件 ID 无效
- 服务 ID 不属于提供的客户 ID
- 域状态设置为“待处理|已取消|待转移|已转移|欺诈”且无法续订
- 提供的客户 ID 不拥有的域
- 没有物品添加到购物车,因此订单无法继续
相关用法
- PHP WHMCS AddonUnsuspended用法及代码示例
- PHP WHMCS AddContact用法及代码示例
- PHP WHMCS AddUser用法及代码示例
- PHP WHMCS AddonAdd用法及代码示例
- PHP WHMCS AddonTerminated用法及代码示例
- PHP WHMCS AddPayMethod用法及代码示例
- PHP WHMCS AddBillableItem用法及代码示例
- PHP WHMCS AddonFraud用法及代码示例
- PHP WHMCS AddTransaction用法及代码示例
- PHP WHMCS AddCancelRequest用法及代码示例
- PHP WHMCS AddonDeleted用法及代码示例
- PHP WHMCS AddonActivated用法及代码示例
- PHP WHMCS AddonSuspended用法及代码示例
- PHP WHMCS AddInvoicePayment用法及代码示例
- PHP WHMCS AddAnnouncement用法及代码示例
- PHP WHMCS AddonConfigSave用法及代码示例
- PHP WHMCS AddonConfig用法及代码示例
- PHP WHMCS AddClient用法及代码示例
- PHP WHMCS AddBannedIp用法及代码示例
- PHP WHMCS AddonRenewal用法及代码示例
- PHP WHMCS AddCredit用法及代码示例
- PHP WHMCS AddProjectTask用法及代码示例
- PHP WHMCS AddTicketNote用法及代码示例
- PHP WHMCS AddProjectMessage用法及代码示例
- PHP WHMCS AddonActivation用法及代码示例
注:本文由纯净天空筛选整理自whmcs.com大神的英文原创作品 AddOrder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。