當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。