นักพัฒนา

POST/v3/order/{prefix_id}

สั่งซื้อหมายเลขโทรศัพท์จากรหัสนำหน้า

ซื้อหมายเลขตามจำนวนที่ต้องการจากหมายเลขคงเหลือปัจจุบันของรหัสนำหน้า เก็บข้อมูลอ้างอิงคำสั่งซื้อ และตรวจสอบกระทบยอดราคา การจัดสรรบางส่วน และการเปิดใช้งาน

ในหน้านี้
  1. สั่งซื้อจากรหัสนำหน้า
  2. ส่งคำขอซื้อ
  3. การตั้งค่าการส่งต่อและการต่ออายุ
  4. อ่านผลลัพธ์ให้ครบถ้วน
  5. การซื้อได้บางส่วนและผลลัพธ์ที่ไม่แน่นอน
  6. การลงทะเบียนและการเปิดใช้งาน
  7. การเรียกกลับของคำสั่งซื้อ
  8. ความล้มเหลวที่ต้องจัดการ

สั่งซื้อจากรหัสนำหน้า

ใช้การดำเนินการนี้เมื่อแค็ตตาล็อกรหัสนำหน้าระบุให้สั่งซื้อตามจำนวนจากรหัสนำหน้า แทนการเลือกหมายเลขที่ว่างเป็นรายหมายเลข เริ่มจาก ประเทศ, พื้นที่หรือรัฐ และ รหัสนำหน้า เก็บตัวระบุรหัสนำหน้าและแผนราคาจากผลลัพธ์ล่าสุดชุดเดียวกัน สำหรับหมายเลขเฉพาะที่เลือกจากรายการหมายเลขที่ว่าง ให้ใช้ ซื้อหมายเลขโทรศัพท์ที่เลือก.

คำขอนี้สามารถซื้อหมายเลขและทำให้เกิดค่าใช้จ่ายได้ ไม่ใช่การขอใบเสนอราคา การจอง หรือการทดลองโดยไม่ดำเนินการจริง ตรวจสอบค่าติดตั้งและค่าบริการรายเดือน อัตราค่าโทรเข้าต่อนาที จำนวนนาทีที่รวมอยู่ ช่องสัญญาณ ข้อกำหนดการลงทะเบียน และขีดจำกัดการซื้อของบัญชีก่อนส่งคำขอ ผลลัพธ์จากแค็ตตาล็อกไม่ได้จองหมายเลขคงเหลือหรือตรึงราคา การตรวจสอบการเติมเงินเข้าบัญชีอาจเกิดขึ้นก่อนดำเนินการจัดหาให้เสร็จสิ้น ข้อผิดพลาดเพียงอย่างเดียวจึงไม่ได้พิสูจน์ว่าไม่มีการซื้อหรือการเติมเงินเข้าบัญชีเกิดขึ้น

ส่งคำขอซื้อ

ใช้บัญชี API ที่เปิดใช้งานแล้วผ่าน HTTPS จากที่อยู่ IP ต้นทางที่ได้รับอนุญาต กำหนดตัวแปรจากรายการที่คุณเลือกในแค็ตตาล็อกปัจจุบันและการกำหนดค่าการส่งต่อที่ได้รับอนุมัติ คำสั่งต่อไปนี้จะซื้อหนึ่งหมายเลข

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode 'quantity=1' \
  --data-urlencode "price_id=$PRICE_ID" \
  --data-urlencode "channels=$CHANNELS" \
  --data-urlencode "reference=$ORDER_REFERENCE" \
  --data-urlencode "uri=$VOICE_URI" \
  "https://api.multitel.net/v3/order/$PREFIX_ID"

ด้านบนแสดงการส่งฟอร์มด้วย POST ตัวประสานงานยังอ่านออบเจ็กต์ JSON เมื่อ Content-Type เป็น application/json ด้วย ฟิลด์ JSON จะทับค่าฟิลด์ฟอร์ม/คำขอที่ตรงกัน ใช้รูปแบบการเข้ารหัสเพียงแบบเดียวให้สอดคล้องกัน อย่าส่งค่าในส่วนคิวรีและเนื้อหาคำขอที่ขัดแย้งกัน

พารามิเตอร์การเลือกคำสั่งซื้อและการแจ้งเตือน
พารามิเตอร์ความหมาย
ตัวระบุรหัสนำหน้าในพาธUUID ของรหัสนำหน้าที่แค็ตตาล็อกส่งกลับมา ไม่สามารถใช้ตัวระบุประเทศ พื้นที่ ราคา หรือหมายเลขรายตัวแทนได้
quantityส่งจำนวนเต็มตั้งแต่ 1 ถึง 100 ค่าเริ่มต้นคือ 1 ค่าที่ต่ำกว่า 1 จะถูกปรับเป็น 1 คำขอนี้ไม่ได้มีไว้เพื่อตรวจสอบความถูกต้องเท่านั้น ค่าที่สูงกว่า 100 จะทำให้เกิดข้อยกเว้นก่อนขั้นตอนจัดการการตอบกลับตามปกติของตัวประสานงานนี้ จึงอย่าคาดหวังรูปแบบ JSON ตามปกติสำหรับข้อมูลนำเข้าที่ไม่ถูกต้องดังกล่าว
price_idตัวระบุราคาสาธารณะของแผนที่เลือก โดย priceid เป็นชื่อเรียกแทนแบบเดิม ตัวระบุที่ไม่ตรงกันอาจทำให้ระบบเลือกใช้แผนอื่นแทนโดยไม่แจ้งให้ทราบ ฟิลด์นี้ไม่ได้ล็อกราคาอย่างเคร่งครัด ยืนยันเพดานราคาของบัญชีก่อนซื้อ และตรวจสอบราคาที่ส่งกลับมาภายหลัง
channelsจำนวนช่องสัญญาณจากแผนที่เลือก เมื่อไม่ได้ใช้แผนที่ตรงกับราคาอย่างแน่นอน จำนวนช่องสัญญาณที่ตรงกันอาจมีผลต่อการเลือกแผนทดแทน ค่านี้เพียงอย่างเดียวไม่ได้รับประกันว่าจะซื้อแผนใดแผนหนึ่งโดยเฉพาะ
referenceป้ายกำกับของคุณสำหรับการซื้อหรือชุดการซื้อ ใช้ค่า ASCII แบบสั้นที่มีความยาวไม่เกิน 255 ไบต์ ค่าที่ยาวกว่านี้จะถูกตัดทอน หากระบุค่านี้ ระบบจะเก็บไว้กับการซื้อที่สำเร็จและรวมไว้ในการเรียกกลับ คำสั่งซื้อแยกกันอาจใช้ข้อมูลอ้างอิงเดียวกันได้ ค่านี้ไม่ใช่คีย์ป้องกันการดำเนินการซ้ำ การส่งการดำเนินการนี้อีกครั้งอาจซื้อและเรียกเก็บเงินสำหรับหมายเลขเพิ่มเติม แม้จะใช้ข้อมูลอ้างอิงเดียวกันและค่าฟิลด์เหมือนกันทุกประการ
webhook_urlURL สำหรับการเรียกกลับที่ระบุหรือไม่ก็ได้ ใช้ปลายทาง HTTPS ที่คุณควบคุม URL ทั้ง HTTP และ HTTPS ผ่านตัวตรวจสอบพื้นฐานปัจจุบันได้ ส่วน URL ที่ไม่ถูกต้องจะถูกเพิกเฉยแทนการปฏิเสธการซื้อ การเรียกกลับเป็นการแจ้งเตือนเพิ่มเติม ไม่ใช่หลักฐานว่าสามารถส่งคำขอซ้ำได้อย่างปลอดภัย

การตั้งค่าการส่งต่อและการต่ออายุ

เลือกการตั้งค่าการส่งต่อแบบเดียวกับที่คุณจะใช้กับหมายเลขในพอร์ทัล ค่าเหล่านี้เป็นการกำหนดค่าขั้นสูง ไม่ใช่คำสั่งสำหรับสร้าง Hosted PBX หรือทรังก์รับสายเข้า ใช้การกำหนดค่าบัญชีเดิมที่ทราบว่าใช้งานได้ และตรวจสอบหมายเลขที่บันทึกไว้หลังการซื้อ การซื้อที่ได้รับการยอมรับเพียงอย่างเดียวไม่ได้ยืนยันว่าการส่งต่อเสียงหรือ SMS ใช้งานได้

ฟิลด์เพิ่มเติมของคำสั่งซื้อ
ฟิลด์การใช้งานและความเข้ากันได้
uri, uri2, uri3ปลายทางเสียงหลักและปลายทางเพิ่มเติม ระบุปลายทางที่เหมาะสมกับโหมดการโอนสายและโหมดการเรียกเข้าที่เลือก
forward_destinationโหมดการโอนสายเสียง โดย forwarding_destination และ type เป็นชื่อเรียกแทนแบบเดิม หากไม่ระบุจะใช้ค่าเริ่มต้นของขั้นตอนชำระเงินนั้น การส่งฟิลด์ว่างไม่ใช่วิธีที่เชื่อถือได้ในการล้างค่าที่ตั้งไว้เดิม
ring_typeโหมดการเรียกเข้าสำหรับเสียง โดย ringtype เป็นชื่อเรียกแทน ใช้ค่าที่รองรับจากการกำหนดค่าหมายเลขในบัญชีของคุณ
sms_forward_destination, sms_uriโหมดและปลายทางการส่งต่อ SMS ชื่อเรียกแทนแบบเดิมคือ smsringtype และ smsuri ขั้นตอนชำระเงินบางแบบจะใช้ปลายทาง SMS เริ่มต้นของบัญชีเมื่อค่านี้ว่าง ความพร้อมใช้งานของ SMS ขึ้นอยู่กับหมายเลขที่เลือกและการเปิดใช้งาน/การลงทะเบียนของหมายเลขนั้น
overflowการตั้งค่ารองรับสายส่วนเกินที่ร้องขอ การรองรับค่านี้ขึ้นอยู่กับความพร้อมใช้งานของแผนและขั้นตอนชำระเงินที่ใช้
force_codec, force_dtmfการตั้งค่าตัวแปลงสัญญาณและ DTMF ที่ร้องขอ ชื่อเรียกแทนแบบเดิมคือ forcecodec และ forcedtmf ตรวจสอบการกำหนดค่าที่บันทึกไว้สำหรับหมายเลขคงเหลือที่เลือก
origination_trunk_idตัวระบุการกำหนดค่าทรังก์ที่มีอยู่ ในกรณีที่เกี่ยวข้อง ค่านี้ไม่ได้สร้างทรังก์ หากไม่ระบุจะใช้ค่าเริ่มต้นของขั้นตอนชำระเงิน
autorenewการตั้งค่าการต่ออายุที่ร้องขอ อย่าสันนิษฐานว่า 0 จะปิดการต่ออายุ ขั้นตอนชำระเงินบางแบบถือว่าค่าที่มีลักษณะเหมือนค่าว่าง รวมถึง 0 เป็นการใช้ค่าเริ่มต้นที่เปิดการต่ออายุไว้ ตรวจสอบและเปลี่ยนการต่ออายุของหมายเลขที่ซื้อในพอร์ทัลเมื่อจำเป็น

ฟิลด์เหล่านี้จะถูกปรับให้อยู่ในรูปแบบมาตรฐานและส่งต่อไปยังขั้นตอนชำระเงิน แต่การบันทึกค่าถาวรแตกต่างกันไปตามเส้นทางการจัดหาหมายเลข เส้นทางคำสั่งซื้อปัจจุบันไม่ได้เปิดให้ใช้ฟิลด์จำกัดเพดานราคาเสนออย่างเคร่งครัดจากคู่มือการซื้อหมายเลขที่เลือกเพื่อเป็นมาตรการป้องกันที่เทียบเท่ากัน ใช้สิทธิ์การซื้อและขีดจำกัดราคาของบัญชี และตรวจสอบการกำหนดค่าหมายเลขที่ได้

อ่านผลลัพธ์ให้ครบถ้วน

แยกวิเคราะห์เนื้อหา JSON และตรวจสอบ status.code กับ status.msg แม้ว่าคำขอ HTTP จะสำเร็จก็ตาม เส้นทางนี้สร้างการตอบกลับ JSON ของตัวเอง และตัวช่วยการตอบกลับที่ใช้ร่วมกันก็ไม่ได้จับคู่รหัสระดับแอปพลิเคชันกับสถานะ HTTP เสมอไป รหัสระดับแอปพลิเคชันอาจเป็นตัวเลข JSON หรือสตริงตัวเลข อย่ากำหนดว่าต้องมี status.results เพราะฟิลด์นี้ไม่มีอยู่ในผลลัพธ์คำสั่งซื้อปกติ

{
  "status": {"code": "200", "msg": ""},
  "response": {
    "id": "o_fictional_example",
    "numbers": ["12025550123"],
    "price": {
      "per_minute": "0.01",
      "free_minutes": 0,
      "setup_price": "1.25",
      "monthly_price": "2.50",
      "channels": 2
    },
    "features": ["voice"],
    "needs_registration": 0,
    "restrictions": "",
    "registration_requirements": null
  }
}

ตัวระบุ หมายเลข และราคาด้านบนเป็นข้อมูลสมมติ ให้ถือว่ารหัสคำสั่งซื้อเป็นค่าอ้างอิงที่ไม่ควรตีความโครงสร้างภายใน numbers แสดงรายการหมายเลขที่การตอบกลับนี้รายงานว่าซื้อแล้ว ให้เปรียบเทียบความยาวของรายการกับจำนวนที่คุณร้องขอ จำนวนเงินราคาเป็นสตริง และการตอบกลับนี้ปัดอัตราที่เป็นจำนวนเงินให้เหลือทศนิยมสองตำแหน่ง รวมถึง per_minute ให้ใช้แค็ตตาล็อกล่าสุดเพื่อดูความละเอียดของอัตราเดิม จำนวนนาทีที่รวมอยู่และจำนวนช่องสัญญาณอาจส่งมาเป็นค่าตัวเลขหรือสตริงตัวเลข

ส่วนข้อมูลราคาอธิบายแผนที่เลือกซึ่งใช้สร้างการตอบกลับ ไม่ใช่ใบแจ้งหนี้โดยละเอียดสำหรับทุกหมายเลขหรือยอดรวมของคำสั่งซื้อ หมายเลขคงเหลือหลายรายการที่อาจถูกเลือกอาจมีแผนต่างกัน ตรวจสอบกระทบยอดหมายเลขที่ซื้อแต่ละหมายเลขและธุรกรรมในบัญชี แทนการนำค่าจากส่วนข้อมูลนี้ไปคูณแล้วสันนิษฐานว่าเป็นหลักฐานยืนยันยอดรวมสุดท้าย

การซื้อได้บางส่วนและผลลัพธ์ที่ไม่แน่นอน

รหัสระดับแอปพลิเคชัน 200 อาจมาพร้อมคำเตือนและจำนวนหมายเลขที่น้อยกว่าที่ร้องขอ ความล้มเหลวในภายหลังไม่ได้ยกเลิกหมายเลขที่ซื้อไปแล้ว เก็บรหัสคำสั่งซื้อ หมายเลข และข้อความที่ส่งกลับมาไว้ ตรวจสอบกระทบยอดหมายเลขเหล่านั้นกับรายการหมายเลขของคุณและธุรกรรมในบัญชีก่อนตัดสินใจว่าจะสั่งซื้อจำนวนที่เหลือหรือไม่

การหมดเวลา คำขอที่การเชื่อมต่อขาดหาย การตอบกลับที่มีรูปแบบผิด หรือข้อผิดพลาดหลังส่งคำขอ ไม่ใช่หลักฐานว่าไม่มีอะไรเกิดขึ้น อย่าส่งคำขอซื้ออีกครั้งโดยอัตโนมัติ แม้จะใช้ข้อมูลอ้างอิงเดียวกัน เก็บคำขอเดิม ข้อมูลอ้างอิง และรหัสคำสั่งซื้อใด ๆ ที่ส่งกลับมาไว้ ตรวจสอบรายการหมายเลขและธุรกรรมในบัญชี และติดต่อฝ่ายสนับสนุนเมื่อผลลัพธ์ยังไม่แน่นอน

คำสั่งซื้อที่ยังไม่ได้รับการยืนยันอาจส่งรหัสระดับแอปพลิเคชัน 400 กลับมาพร้อมข้อความว่ากำลังอยู่ระหว่างการยืนยัน เก็บรหัสคำสั่งซื้อที่ส่งกลับมาและตรวจสอบกระทบยอดการซื้อนั้น ข้อความนี้ไม่ได้เป็นคำสั่งให้ส่งคำขออีกครั้ง กระบวนการกู้คืนคำสั่งซื้อที่บันทึกไว้จะติดตามคำสั่งซื้อเดิมภายในระบบ คำขอใหม่ที่ส่งมายังการดำเนินการนี้จะสร้างความพยายามซื้อแยกต่างหาก แทนการดำเนินคำสั่งซื้อเดิมต่อโดยอาศัยข้อมูลอ้างอิงของคุณ จึงอาจซื้อและเรียกเก็บเงินสำหรับหมายเลขเพิ่มได้ อย่าใช้การส่งคำขอซื้อซ้ำเพื่อตรวจสอบสถานะหรือค้นหาหมายเลขคงเหลือ

การลงทะเบียนและการเปิดใช้งาน

หมายเลขที่ซื้อหรือได้รับการจัดสรรแล้วอาจยังต้องลงทะเบียนหรือเปิดใช้งาน หาก needs_registration เป็น 1 ให้ตรวจสอบ restrictions และ registration_requirements ฟิลด์หลังอาจระบุ v3/get_requirements พร้อมค่า country และ number_type ดำเนินขั้นตอนยืนยันตัวตน/ที่อยู่ที่เกี่ยวข้องให้เสร็จสิ้น และยืนยันสถานะของหมายเลขก่อนนำไปใช้งานรับสายหรือรับส่งข้อความ

features อธิบายความสามารถที่ระบุไว้ในการเสนอขาย ไม่ได้ยืนยันการกำหนดเส้นทางที่ใช้งานจริง การอนุมัติแคมเปญ การส่ง SMS หรือการรับแฟกซ์ ตรวจสอบการตั้งค่าการส่งต่อที่บันทึกไว้ และทดสอบบริการอย่างเหมาะสมเมื่อหมายเลขเปิดใช้งานแล้ว

การเรียกกลับของคำสั่งซื้อ

การเรียกกลับส่ง JSON ด้วย POST ซึ่งประกอบด้วยสถานะคำสั่งซื้อและการตอบกลับ พร้อมเพิ่มข้อมูลอ้างอิงของคุณหากได้ระบุไว้ ระบบจะส่งการเรียกกลับสำหรับการซื้อที่รายงาน รวมถึงผลลัพธ์ที่ซื้อได้บางส่วน การเรียกกลับที่ล้มเหลวไม่ได้ย้อนกลับการซื้อ ระบบอาจลองส่งใหม่ จึงควรจัดการข้อมูลซ้ำโดยอิงรหัสคำสั่งซื้อและตรวจสอบกระทบยอดหมายเลข แทนการส่งคำขอซื้ออีกครั้ง

เส้นทางนี้ไม่ได้เพิ่มลายเซ็นเข้ารหัสลับให้การเรียกกลับ ให้ถือว่าการเรียกกลับเป็นการแจ้งเตือนเพื่อตรวจสอบกระทบยอดกับรายการหมายเลขที่คุณเข้าถึงผ่านการยืนยันตัวตน ไม่ใช่การอนุญาตโดยลำพังให้เรียกเก็บเงิน จัดเตรียมบริการ หรือให้สิทธิ์เข้าถึง อย่าใส่ข้อมูลรับรอง API ไว้ใน URL การเรียกกลับ การส่งคำขอซื้ออีกครั้งโดยใช้ URL การเรียกกลับอื่นไม่ได้อัปเดตคำสั่งซื้อเดิม แต่จะสร้างความพยายามซื้อแยกต่างหาก เก็บรหัสคำสั่งซื้อเดิมไว้เมื่อขอให้ฝ่ายสนับสนุนตรวจสอบการเรียกกลับของคำสั่งซื้อนั้น

ความล้มเหลวที่ต้องจัดการ

ผลลัพธ์ระดับแอปพลิเคชัน
ผลลัพธ์สิ่งที่ต้องทำ
400 พร้อมข้อความว่ารหัสนำหน้าไม่ถูกต้องอ่านแค็ตตาล็อกรหัสนำหน้าอีกครั้งและใช้ตัวระบุปัจจุบัน แยกกรณีนี้ออกจากข้อความว่าคำสั่งซื้อเดิมยังอยู่ระหว่างการยืนยัน
403 หรือความล้มเหลวเกี่ยวกับนโยบายบัญชี/ยอดเงินคงเหลือตรวจสอบสิทธิ์การซื้อ เพดานราคาของบัญชี ขีดจำกัดจำนวน และการเติมเงิน การตรวจสอบเหล่านี้อาจส่งต่อรหัสระดับแอปพลิเคชันอื่นมาได้ ให้เก็บข้อความจริงที่ได้รับไว้
404 หรือไม่มีหมายเลขคงเหลือที่พร้อมจำหน่ายเรียกดูข้อมูลความพร้อมจำหน่ายใหม่ อย่าส่งคำขอซื้อซ้ำสำหรับรหัสนำหน้าที่ไม่มีหมายเลขเหลือแล้ว
409 พร้อมข้อความเกี่ยวกับการยืนยันการซื้อ การปฏิเสธจากผู้ให้บริการ หรือคำสั่งซื้อที่ถูกยกเลิกเก็บรหัสคำสั่งซื้อที่ส่งกลับมาและข้อความจริงไว้ ตรวจสอบกระทบยอดคำขอกับรายการหมายเลข ธุรกรรมในบัญชี และฝ่ายสนับสนุนก่อนส่งคำขอซื้ออีกครั้ง การใช้ข้อมูลอ้างอิงเดิมซ้ำไม่ได้ทำให้คำขออีกครั้งปลอดภัย
200 พร้อมคำเตือนหรือจำนวนหมายเลขที่น้อยกว่าที่ร้องขอมีการซื้อหมายเลขบางส่วนแล้ว ตรวจสอบกระทบยอดการจัดสรรที่ส่งกลับมาและธุรกรรมก่อนสั่งซื้อเพิ่ม
ความล้มเหลวของเซิร์ฟเวอร์/การรับส่งข้อมูล หรือการตอบกลับที่อ่านไม่ได้ให้ถือว่าผลลัพธ์อาจยังไม่แน่นอน จนกว่ารายการหมายเลขและธุรกรรมจะยืนยันได้ว่าเกิดอะไรขึ้น