Nhà phát triển

POST/v3/order/{prefix_id}

Đặt mua số điện thoại theo đầu số

Mua một số lượng số điện thoại từ kho đầu số hiện có, lưu giữ mã tham chiếu đơn hàng và đối soát giá, phần số được cấp cùng việc kích hoạt.

Trên trang này
  1. Đặt mua theo đầu số
  2. Gửi yêu cầu mua
  3. Cài đặt chuyển cuộc gọi, tin nhắn và gia hạn
  4. Đọc toàn bộ kết quả
  5. Mua được một phần và kết quả chưa chắc chắn
  6. Đăng ký và kích hoạt
  7. Thông báo gọi lại về đơn hàng
  8. Các lỗi cần xử lý

Đặt mua theo đầu số

Sử dụng thao tác này khi danh mục đầu số hướng dẫn bạn đặt mua một số lượng số điện thoại theo đầu số thay vì chọn từng số có sẵn. Bắt đầu với quốc gia, khu vực hoặc tiểu bang, rồi đến đầu số. Giữ mã định danh đầu số và gói cước lấy từ cùng một kết quả mới cập nhật. Đối với một số cụ thể được chọn từ danh sách số có sẵn, hãy sử dụng Mua số điện thoại đã chọn.

Yêu cầu này có thể mua số điện thoại và phát sinh phí. Đây không phải là yêu cầu báo giá, giữ chỗ hay chạy thử. Trước khi gửi, hãy xem xét phí thiết lập và phí hằng tháng, cước mỗi phút gọi đến, số phút đi kèm, số kênh, yêu cầu đăng ký và giới hạn mua của tài khoản. Kết quả từ danh mục không giữ số trong kho hay cố định giá. Việc kiểm tra nạp tiền vào tài khoản có thể diễn ra trước khi hoàn tất đơn hàng; bản thân một lỗi không chứng minh rằng chưa có giao dịch mua hoặc nạp tiền vào tài khoản nào xảy ra.

Gửi yêu cầu mua

Sử dụng tài khoản API đã được bật qua HTTPS từ địa chỉ IP nguồn được phép. Đặt các biến theo lựa chọn hiện tại của bạn trong danh mục và cấu hình chuyển cuộc gọi, tin nhắn đã được phê duyệt. Lệnh sau đây mua một số điện thoại.

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"

Ví dụ trên sử dụng POST với dữ liệu biểu mẫu. Bộ điều phối cũng đọc một đối tượng JSON khi Content-Type là application/json. Các trường JSON ghi đè các trường biểu mẫu/yêu cầu tương ứng. Sử dụng nhất quán một kiểu mã hóa; không gửi các giá trị mâu thuẫn giữa chuỗi truy vấn và phần thân yêu cầu.

Tham số lựa chọn đơn hàng và thông báo
Tham sốÝ nghĩa
mã định danh đầu số trong đường dẫnUUID của đầu số do danh mục trả về. Không thể thay thế bằng mã định danh quốc gia, khu vực, giá hoặc một số điện thoại riêng lẻ.
quantityGửi một số nguyên từ 1 đến 100. Mặc định là 1. Giá trị dưới 1 bị chuyển thành 1; đây không phải là yêu cầu chỉ để kiểm tra tính hợp lệ. Giá trị trên 100 gây ra ngoại lệ trước bước xử lý phản hồi thông thường của bộ điều phối này, vì vậy đừng dựa vào cấu trúc JSON thông thường của nó đối với dữ liệu đầu vào không hợp lệ đó.
price_idMã định danh giá công khai của gói đã chọn. priceid là tên thay thế từ phiên bản cũ. Mã định danh không khớp có thể khiến hệ thống âm thầm chuyển sang một gói khác; trường này không khóa giá nghiêm ngặt. Xác nhận mức giá trần của tài khoản trước khi mua và kiểm tra giá được trả về sau đó.
channelsSố kênh của gói đã chọn. Khi không sử dụng kết quả khớp giá chính xác, số kênh khớp có thể ảnh hưởng đến việc lựa chọn gói thay thế. Chỉ riêng giá trị này không bảo đảm rằng một gói cụ thể sẽ được mua.
referenceNhãn bạn đặt cho giao dịch mua hoặc lô mua. Sử dụng giá trị ASCII ngắn, tối đa 255 byte; giá trị dài hơn sẽ bị cắt bớt. Nếu được cung cấp, giá trị này được lưu cùng các giao dịch mua thành công và đưa vào thông báo gọi lại. Các đơn hàng riêng biệt có thể dùng chung một mã tham chiếu. Đây không phải là khóa bảo đảm tính lũy đẳng: gửi lại thao tác này có thể mua thêm số và tính thêm phí, ngay cả khi dùng cùng mã tham chiếu và các trường giống hệt nhau.
webhook_urlURL gọi lại tùy chọn. Sử dụng điểm cuối HTTPS do bạn kiểm soát. URL HTTP và HTTPS đều vượt qua bộ kiểm tra cơ bản hiện tại; URL không hợp lệ sẽ bị bỏ qua thay vì khiến giao dịch mua bị từ chối. Thông báo gọi lại là thông báo bổ sung, không phải bằng chứng cho thấy có thể lặp lại yêu cầu một cách an toàn.

Cài đặt chuyển cuộc gọi, tin nhắn và gia hạn

Chọn các cài đặt chuyển cuộc gọi và tin nhắn giống như khi bạn cấu hình số đó trên cổng quản lý. Đây là các giá trị cấu hình nâng cao, không phải hướng dẫn tạo tổng đài PBX được lưu trữ hoặc trung kế cho cuộc gọi đến. Sử dụng lại cấu hình tài khoản đã biết là hoạt động và kiểm tra số đã lưu sau khi mua. Chỉ riêng việc giao dịch mua được chấp nhận không xác minh rằng việc chuyển cuộc gọi hoặc SMS hoạt động.

Các trường bổ sung của đơn hàng
TrườngCách dùng và khả năng tương thích
uri, uri2, uri3Đích nhận cuộc gọi chính và các đích bổ sung. Cung cấp các đích phù hợp với chế độ chuyển tiếp và đổ chuông đã chọn.
forward_destinationChế độ chuyển tiếp cuộc gọi. forwarding_destination và type là các tên thay thế từ phiên bản cũ. Khi bỏ qua trường này, hệ thống sử dụng giá trị mặc định của luồng thanh toán; để trống trường không phải là cách đáng tin cậy để xóa tùy chọn hiện có.
ring_typeChế độ đổ chuông cuộc gọi; ringtype là tên thay thế. Sử dụng giá trị được hỗ trợ trong cấu hình số điện thoại của tài khoản.
sms_forward_destination, sms_uriChế độ và đích chuyển SMS. Các tên thay thế từ phiên bản cũ là smsringtype và smsuri. Một số luồng thanh toán áp dụng đích SMS mặc định của tài khoản khi trường này trống. Khả năng sử dụng SMS phụ thuộc vào số đã chọn và việc kích hoạt/đăng ký số đó.
overflowCài đặt xử lý tràn được yêu cầu. Việc cài đặt này có được hỗ trợ hay không phụ thuộc vào các gói hiện có và luồng thanh toán.
force_codec, force_dtmfCác cài đặt bộ mã hóa và DTMF được yêu cầu. Các tên thay thế từ phiên bản cũ là forcecodec và forcedtmf. Kiểm tra cấu hình đã lưu cho các số được chọn trong kho.
origination_trunk_idMã định danh cấu hình trung kế hiện có, khi áp dụng. Trường này không tạo trung kế. Khi bỏ qua, hệ thống sử dụng giá trị mặc định của quy trình thanh toán.
autorenewCài đặt gia hạn được yêu cầu. Đừng cho rằng 0 sẽ tắt gia hạn: một số luồng thanh toán coi giá trị tương đương rỗng, bao gồm 0, là cài đặt bật mặc định. Kiểm tra và thay đổi chế độ gia hạn của số đã mua trên cổng quản lý khi cần.

Các trường này được chuẩn hóa và chuyển đến quy trình thanh toán, nhưng cách lưu lại khác nhau giữa các luồng xử lý kho số. Tuyến đặt hàng hiện tại không cung cấp các trường giới hạn báo giá nghiêm ngặt trong hướng dẫn mua số đã chọn như những biện pháp bảo vệ tương đương. Sử dụng quyền mua và giới hạn giá của tài khoản, đồng thời kiểm tra cấu hình số điện thoại sau khi mua.

Đọc toàn bộ kết quả

Phân tích phần thân JSON và kiểm tra status.code cùng status.msg ngay cả khi yêu cầu HTTP thành công. Tuyến này tự ghi phản hồi JSON của nó, và hàm hỗ trợ phản hồi dùng chung cũng không nhất thiết ánh xạ mã ứng dụng sang trạng thái HTTP. Mã ứng dụng có thể là số JSON hoặc chuỗi số. Không yêu cầu bắt buộc phải có status.results; trường này không xuất hiện trong kết quả đặt hàng thông thường.

{
  "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
  }
}

Mã định danh, số điện thoại và các mức giá ở trên đều là giả định. Hãy coi ID đơn hàng là một mã không cần diễn giải cấu trúc bên trong. numbers liệt kê các số mà phản hồi này báo cáo là đã mua; hãy so sánh độ dài danh sách với số lượng bạn yêu cầu. Các khoản giá là chuỗi và phản hồi này làm tròn mức cước tiền tệ đến hai chữ số thập phân, bao gồm per_minute; sử dụng danh mục mới cập nhật để lấy độ chính xác ban đầu của mức cước. Số phút đi kèm và số kênh có thể được trả về dưới dạng giá trị số hoặc chuỗi số.

Khối giá mô tả gói đã chọn được dùng để tạo phản hồi, không phải hóa đơn chi tiết cho từng số hay tổng tiền của đơn hàng. Các số ứng viên trong kho có thể thuộc các gói khác nhau. Hãy đối soát từng số đã mua và các giao dịch tài khoản thay vì nhân các giá trị trong khối này rồi cho rằng chúng chứng minh tổng tiền cuối cùng.

Mua được một phần và kết quả chưa chắc chắn

Mã ứng dụng 200 có thể đi kèm cảnh báo và số lượng số điện thoại ít hơn yêu cầu. Lỗi xảy ra sau đó không hủy việc mua các số đã mua được. Lưu giữ ID đơn hàng, các số và thông báo được trả về. Đối soát các số đó trong kho của bạn và các giao dịch tài khoản trước khi quyết định có đặt mua số lượng còn thiếu hay không.

Hết thời gian chờ, yêu cầu bị ngắt kết nối, phản hồi sai định dạng hoặc lỗi sau khi gửi không phải là bằng chứng cho thấy chưa có gì xảy ra. Không tự động gửi yêu cầu mua khác, ngay cả khi dùng cùng mã tham chiếu. Lưu giữ yêu cầu ban đầu, mã tham chiếu và mọi ID đơn hàng được trả về, kiểm tra kho số và các giao dịch tài khoản, đồng thời liên hệ bộ phận hỗ trợ nếu kết quả vẫn chưa rõ.

Đơn hàng chưa được xác nhận có thể trả về mã ứng dụng 400 kèm nội dung cho biết đơn hàng vẫn đang được xác nhận. Lưu giữ ID đơn hàng được trả về và đối soát giao dịch mua đó; đây không phải là chỉ dẫn gửi lại yêu cầu. Cơ chế khôi phục đơn hàng đã ghi nhận theo dõi đơn hàng ban đầu trong nội bộ. Yêu cầu mới gửi đến thao tác này tạo một lần thử mua riêng biệt thay vì tiếp tục đơn hàng dựa trên mã tham chiếu của bạn, vì vậy có thể mua thêm số và tính thêm phí. Không sử dụng các yêu cầu mua lặp lại để kiểm tra trạng thái hoặc tìm kiếm kho số.

Đăng ký và kích hoạt

Số đã mua hoặc được cấp vẫn có thể cần đăng ký hoặc kích hoạt. Nếu needs_registration là 1, hãy kiểm tra restrictions và registration_requirements. Trường sau có thể chỉ ra v3/get_requirements cùng các giá trị country và number_type. Hoàn tất quy trình xác minh danh tính/địa chỉ phù hợp và xác nhận trạng thái của số trước khi dựa vào số đó để nhận cuộc gọi hoặc tin nhắn.

features mô tả các khả năng được công bố; trường này không xác minh việc định tuyến thực tế, phê duyệt chiến dịch, chuyển SMS hay nhận fax. Kiểm tra các cài đặt chuyển cuộc gọi và tin nhắn đã lưu, đồng thời thực hiện phép thử dịch vụ phù hợp khi số đã hoạt động.

Thông báo gọi lại về đơn hàng

Thông báo gọi lại gửi POST với dữ liệu JSON chứa trạng thái đơn hàng và phản hồi, đồng thời thêm mã tham chiếu của bạn nếu được cung cấp. Chúng được gửi cho các giao dịch mua được báo cáo, bao gồm cả kết quả mua được một phần. Thông báo gọi lại thất bại không hoàn tác giao dịch mua. Việc gửi có thể được thử lại, vì vậy hãy xử lý thông báo trùng lặp theo ID đơn hàng và đối soát các số thay vì gửi yêu cầu mua khác.

Tuyến này không thêm chữ ký mật mã cho thông báo gọi lại. Hãy coi thông báo gọi lại là thông báo để đối soát với kho số được truy cập qua xác thực của bạn, không phải sự cho phép độc lập để tính phí, cấp dịch vụ hoặc cấp quyền truy cập. Không đưa thông tin xác thực API vào URL gọi lại. Gửi yêu cầu mua khác với URL gọi lại khác không cập nhật đơn hàng ban đầu; việc đó tạo một lần thử mua riêng biệt. Giữ lại ID đơn hàng ban đầu khi yêu cầu bộ phận hỗ trợ điều tra thông báo gọi lại của đơn hàng đó.

Các lỗi cần xử lý

Kết quả ở cấp ứng dụng
Kết quảCách xử lý
400 kèm nội dung cho biết đầu số không hợp lệĐọc lại danh mục đầu số và sử dụng mã định danh hiện tại trong đó. Phân biệt trường hợp này với nội dung cho biết đơn hàng ban đầu vẫn đang được xác nhận.
403 hoặc lỗi liên quan đến chính sách/số dư tài khoảnXem lại quyền mua, mức giá trần của tài khoản, giới hạn số lượng và việc nạp tiền. Các bước kiểm tra đó có thể chuyển tiếp những mã ứng dụng khác; hãy giữ lại thông báo thực tế.
404 hoặc không có số sẵn có trong khoCập nhật lại thông tin số có sẵn. Không liên tục gửi yêu cầu mua đối với đầu số đã hết số trong kho.
409 kèm nội dung về xác nhận giao dịch mua, nhà cung cấp từ chối hoặc đơn hàng bị hủyGiữ lại ID đơn hàng được trả về và thông báo thực tế. Đối soát yêu cầu với kho số, các giao dịch tài khoản và bộ phận hỗ trợ trước khi gửi yêu cầu mua khác. Dùng lại cùng mã tham chiếu không khiến yêu cầu tiếp theo trở nên an toàn.
200 kèm cảnh báo hoặc số lượng số điện thoại ít hơn yêu cầuMột số số điện thoại đã được mua. Đối soát các số được cấp trong phản hồi và các giao dịch trước khi đặt mua thêm.
Lỗi máy chủ/truyền tải hoặc phản hồi không đọc đượcCoi kết quả là có thể chưa chắc chắn cho đến khi kho số và các giao dịch làm rõ điều đã xảy ra.