当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP WHMCS AddOrder用法及代码示例


向客户添加订单。对于更多的流程控制,此方法忽略“下订单后自动设置产品”。选项。当您调用此方法时,您必须对 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 不拥有的域
  • 没有物品添加到购物车,因此订单无法继续

相关用法


注:本文由纯净天空筛选整理自whmcs.com大神的英文原创作品 AddOrder。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。