დეველოპერებისთვის

POST/v3/rentnumber/{number_id}/{price_id}

შერჩეული ტელეფონის ნომრის შეძენა

გაგზავნეთ ერთი დამტკიცებული ნომერი და ფასი შეთავაზების დამცავი შემოწმებებით, შემდეგ კი ხელახალ მცდელობამდე გადაამოწმეთ მფლობელობა და აქტივაცია.

ამ გვერდზე
  1. ნომერი და ფასი ერთად შეარჩიეთ
  2. გაგზავნეთ შეძენის მოთხოვნა დამცავი შემოწმებებით, POST მეთოდით
  3. რეგისტრაცია და აქტივაცია
  4. თავიდან აიცილეთ გეგმის შეუტყობინებლად ჩანაცვლება
  5. დამატებითი პარამეტრები: ანგარიშის ნაგულისხმევი მარშრუტიზაცია
  6. პასუხი
  7. შეცდომები და გაურკვეველი შედეგები
  8. ხელახალ მცდელობამდე შეაჯერეთ მონაცემები

ნომერი და ფასი ერთად შეარჩიეთ

შეიძინეთ ერთი კონკრეტული ნომერი, რომელიც ხელმისაწვდომი ნომრების ახალი ძიებიდან შეარჩიეთ. შერჩეული ჩანაწერის info.uuid გამოიყენეთ ნომრის ID-დ, ხოლო იმავე ჩანაწერის price[].uuid მნიშვნელობებიდან ერთ-ერთი — ფასის ID-დ. მარშრუტი ასევე იღებს სრულ შენახულ ნომერს, თუმცა ქვეყნის, რეგიონის ან პრეფიქსის ID ნომრის შერჩევას ვერ ჩაანაცვლებს.

ძიება ან შენახული ფასების წაკითხვა ნომერს არ ჯავშნის და მის ფასს არ აფიქსირებს. დაადასტურეთ შერჩეული ჩართვის საფასური, ყოველთვიური საფასური, შემომავალი ზარის წუთის ტარიფი, გათვალისწინებული წუთები და არხები, ასევე ანგარიშის შეძენის უფლებები და რეგისტრაციის მოთხოვნები. განხილულ დამხმარე კომპონენტში საწყისი საბაზისო თანხა ჩართვისა და ყოველთვიური საფასურების ჯამია; შერჩეული გეგმისთვის უნდა დადასტურდეს კონკრეტული პროვაიდერის ყველა საფასური და პირობა.

გაგზავნეთ შეძენის მოთხოვნა დამცავი შემოწმებებით, POST მეთოდით

გამოიყენეთ ჩართული API ანგარიში HTTPS-ის მეშვეობით, ნებადართული წყაროს IP მისამართიდან. ქვემოთ მოცემული ბრძანება ახორციელებს შეძენას და არა ფასის შეთავაზების მიღებას ან საცდელ გაშვებას. ყველა ცვლადის მნიშვნელობა აიღეთ ნომრისა და ფასის ერთი და იმავე ახალი შერჩევიდან. ზედა ზღვრის ველებში შენარჩუნებულია ძველი restore_quote_ პრეფიქსი; მოქმედი პორტალიც იყენებს ამ ველებს კონკრეტული ნომრის დამცავი შემოწმებებით შესაძენად.

curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
  --data-urlencode "restore_quote_price_id=$PRICE_ID" \
  --data-urlencode "restore_quote_setup=$SETUP_PRICE" \
  --data-urlencode "restore_quote_monthly=$MONTHLY_PRICE" \
  --data-urlencode "restore_quote_per_minute=$PER_MINUTE_PRICE" \
  --data-urlencode "restore_quote_channels=$CHANNELS" \
  "https://api.multitel.net/v3/rentnumber/$NUMBER_ID/$PRICE_ID"

გამოიყენეთ ფორმის POST მოთხოვნა, როგორც ნაჩვენებია. დამხმარე კომპონენტს JSON-ისა და პარამეტრების გარსის გარჩევაც შეუძლია, თუმცა ამ მიმოხილვით არ დადგენილა სრული თანაბარი ქცევა შეთავაზებისა და პროვაიდერის ყველა დამუშავების გზისთვის. შესაძენად არ გამოიყენოთ GET, მიუხედავად იმისა, რომ ამ ძველ კოორდინატორს მეთოდის აშკარა შემოწმება არ აქვს.

შეძენის მარშრუტი და შეთავაზების ველები
ველიმნიშვნელობა
NUMBER_IDძიებიდან შერჩეული ნომრის UUID ან სრული შენახული ნომერი. თითო მოთხოვნაში — ერთი ნომერი.
PRICE_IDშერჩეულ ნომერთან და თქვენს ანგარიშთან დაკავშირებული ფასის UUID. ყოველთვის მიუთითეთ იგი ცალსახად.
restore_quote_price_idუნდა ემთხვეოდეს დამუშავებისას განსაზღვრულ ფასის ID-ს. ამ ველის მითითება რთავს შეთავაზების შემოწმებებს; იგი იდემპოტენტურობის გასაღები არ არის.
restore_quote_setupჩართვის მაქსიმალური მისაღები საფასური, სასრული არაუარყოფითი რიცხვითი მნიშვნელობის სახით.
restore_quote_monthlyმაქსიმალური მისაღები ყოველთვიური საფასური, სასრული არაუარყოფითი რიცხვითი მნიშვნელობის სახით.
restore_quote_per_minuteშემომავალი ზარის წუთის მაქსიმალური მისაღები ტარიფი, სასრული არაუარყოფითი რიცხვითი მნიშვნელობის სახით.
restore_quote_channelsშერჩეული საფასო ვარიანტის არხების ზუსტი მთელი რაოდენობა და არა სხვა რაოდენობის არხების მქონე გეგმის მოთხოვნა.

შეთავაზების ფასის ID-ის მითითებისას ყოველთვის მიუთითეთ შეთავაზების ყველა რიცხვითი ველი. შეცვლილი ID, ზედა ზღვარზე მაღალი ფასი, გამოტოვებული ან არასწორი ზედა ზღვარი, არხების შეცვლილი რაოდენობა ან შეთავაზების დაკავებული ბლოკირება აბრუნებს API კოდს 409 მანამ, სანამ შერჩეულ საიჯარო პროვაიდერს მოთხოვნა გაეგზავნება. შედარებებისას დაშვებულია მცურავმძიმიანი რიცხვების მცირე ცდომილება; გამოიყენეთ გეგმის რეალურად ნაჩვენები მნიშვნელობები და არა ხელით დამრგვალებული ფასი.

დამცავი შემოწმებები მთელ სამუშაო პროცესს საცდელ გაშვებად ან ტრანზაქციად არ აქცევს. რეგისტრაციის მონაცემების მოძიება, იდენტობის ობიექტის შექმნა ან გამართვა და დამხმარე კომპონენტის სხვა მოქმედებები შესაძლოა ამ შემოწმებებამდე შესრულდეს. ეს შემოწმებები არც გარე პროვაიდერის ნომრების მარაგს აფიქსირებს და არც ანგარიშის დონეზე მოქმედ შეძენის შეზღუდვებს ანაცვლებს.

რეგისტრაცია და აქტივაცია

საჭიროების შემთხვევაში დაამატეთ RegistrationID ფორმის ველი, რომელიც შეიცავს მომხმარებლის კუთვნილი სარეგისტრაციო პროფილის UUID-ს. ეს არ არის ატვირთული დამადასტურებელი დოკუმენტის, მომწოდებლის მისამართის ან ცალკე იდენტობის ობიექტის ID. დამხმარე კომპონენტი პროფილს ავთენტიფიცირებულ ანგარიშთან მიმართებით ეძებს და უარყოფს არარსებულ ან მიუწვდომელ პროფილებს.

მხარდაჭერილი მარაგის ზოგიერთი ნომრის შეძენა რეგისტრაციის დასრულებამდე შეიძლება; სხვა ნომრების შესაძენად კი პროფილი წინასწარ არის საჭირო. შესაძლოა კვლავ საჭირო იყოს კონკრეტული ოპერატორის ვალიდაცია ან ტექნიკური გამართვა. წარმატებული შეძენა ან წინასწარი შემოწმების გამოტოვება არ ჩათვალოთ რეგისტრაციისგან გათავისუფლებად ან დაუყოვნებლივ აქტივაციად.

თუ პასუხში მოცემულია registration_requirements , იგი განსაზღვრავს სტრუქტურირებული მოთხოვნების მოძიებას ქვეყნისა და ნომრის ტიპის მიხედვით. შესაბამისი მოთხოვნების შესასრულებლად გამოიყენეთ რეგისტრაციის კატალოგი და დამადასტურებელი დოკუმენტების წარდგენის პროცესი. დაბრუნებული ტექსტი და მეტამონაცემები თავისთავად პროფილის დამტკიცებას არ ნიშნავს.

თავიდან აიცილეთ გეგმის შეუტყობინებლად ჩანაცვლება

ძველ კოორდინატორს შეუძლია გამოტოვებული ფასი ნომრის ქეშირებული მონაცემებიდან განსაზღვროს. თუ ცალსახად მითითებული ფასის ID აღარ არსებობს, მას ასევე შეუძლია ქეშირებული პრეფიქსისთვის ანგარიშის უახლესი ფასი გამოიყენოს და ქეშში დაშვებული ფასის შერჩევა განაახლოს. მომხმარებლის მიერ დამტკიცებული გეგმის შესარჩევად ამ სათადარიგო მექანიზმებს ნუ დაეყრდნობით.

ცალსახად მიუთითეთ შერჩეული ფასი და შეთავაზების შესაბამისი დამცავი ველები. შეთავაზების ID-ის დამცავი შემოწმება სხვა ID-ზე გადასვლას უარყოფს საიჯარო მოთხოვნის გაგზავნამდე. მოძველებული ფასით გამოწვეული კონფლიქტის შემდეგ განაახლეთ ძიება და მიიღეთ ახალი შერჩევის დამტკიცება; შეძენის იძულებით შესასრულებლად დამცავი შემოწმებები არ მოხსნათ.

ყველა დამუშავების გზისთვის არ არსებობს გარანტირებული ჯავშნის პერიოდი ან ქეშის მოქმედების ვადა, რომელიც ყველგან სავალდებულოდ სრულდება. სამუშაო პროცესში ხელახლა მოწმდება ნომრის ხელმისაწვდომობა, ანგარიშის ფასის ლიმიტები და შეძენის წესები, თუმცა კონკრეტული პროვაიდერების სრული ქცევის შესწავლა ჯერ გრძელდება.

დამატებითი პარამეტრები: ანგარიშის ნაგულისხმევი მარშრუტიზაცია

შეძენისას შეიძლება მემკვიდრეობით გადმოვიდეს ანგარიშში არსებული ხმოვანი ზარების მისამართები, სარეზერვო მისამართები, SMS-ის მისამართი და შემომავალი ტრანკის სასურველი არჩევანი. შეკვეთამდე გადახედეთ ამ ნაგულისხმევ პარამეტრებს; მარშრუტიზაციის პარამეტრების გამოტოვება არ იძლევა გარანტიას, რომ ნომერი კონფიგურაციის გარეშე იქნება. განხილული დამხმარე კომპონენტი ავტომატურ განახლებას ნაგულისხმევად რთავს.

საერთო დამხმარე კომპონენტის მიერ ამოცნობილი მარშრუტიზაციის პარამეტრები
პარამეტრიმნიშვნელობის განსაზღვრის წესი
uri, uri2, uri3გამოტოვებული მნიშვნელობები ანგარიშის შესაბამის ნაგულისხმევ მნიშვნელობებს იღებს. ცალსახად მითითებული ცარიელი მნიშვნელობები დამხმარე კომპონენტში მნიშვნელობას ასუფთავებს, ნაცვლად იმისა, რომ ნაგულისხმევი მნიშვნელობა გადმოიღოს. გამოიყენეთ შერჩეული მარშრუტიზაციის რეჟიმისთვის შესაფერისი მოქმედი მისამართები.
smsuriგამოტოვებული მნიშვნელობა ანგარიშის SMS-ის მისამართს იღებს; ცალსახად მითითებული ცარიელი მნიშვნელობა მას დამხმარე კომპონენტში ასუფთავებს.
origintrunkამოცნობილ, ცალსახად მითითებულ ტრანკის ID-ს უპირატესობა ენიჭება. თუ მნიშვნელობა ვერ განისაზღვრა, შეცდომის დაბრუნების ნაცვლად შესაძლოა გამოყენებული იყოს ანგარიშის სასურველი არჩევანი ან ძველი ნაგულისხმევი მნიშვნელობა.
forward_destination, forwarding_destination, typeმარშრუტიზაციის რეჟიმის არაცარიელი ალტერნატიული სახელები, უპირატესობის ამ თანმიმდევრობით. გამოიყენეთ ანგარიშის მარშრუტიზაციის კონფიგურაციით მხარდაჭერილი მნიშვნელობები და არა ნავარაუდევი რიცხვითი რეჟიმი.
RegistrationIDსარეგისტრაციო პროფილის მოძიება კონკრეტული მომხმარებლის ფარგლებში; იგი მარშრუტიზაციის მისამართებისგან განცალკევებულია.
autorenewნაგულისხმევი მნიშვნელობაა 1. დამხმარე კომპონენტი ამოწმებს, არის თუ არა მნიშვნელობა არაცარიელი, ამიტომ 0 შეძენის ამ ველის მეშვეობით განახლებას საიმედოდ არ თიშავს. გამოიყენეთ ანგარიშის განახლების მართვის მხარდაჭერილი საშუალებები და გადაამოწმეთ შენახული პარამეტრი.

ეს წესები აღწერს საერთო დამხმარე კომპონენტის ქცევას და არ იძლევა გარანტიას, რომ ყველა მომწოდებელი ყველა არასავალდებულო პარამეტრს ერთნაირად ინახავს. არსებობს ხმოვანი ზარების, ხმოვანი ფოსტის, ფაქსისა და SMS-ის სხვა ძველი ველებიც, თუმცა ისინი კვლავ საჭიროებს თითოეული პროვაიდერისთვის სრულ განხილვას. ზარებსა თუ შეტყობინებებზე დაყრდნობამდე ანგარიშის სამუშაო პროცესის მეშვეობით გადაამოწმეთ შეძენილი ნომრის შენახული კონფიგურაცია.

პასუხი

გამოგონილი მაგალითი მარტივი შეძენისთვის; მნიშვნელობები და ფუნქციები შერჩეული გეგმის მიხედვით განსხვავდება.

{
  "status": {
    "code": 200,
    "msg": ""
  },
  "response": {
    "number": "12025550123",
    "price": {
      "per_minute": "0.0100",
      "free_minutes": "100",
      "setup_price": "2.00",
      "monthly_price": "4.00",
      "channels": "2",
      "overflow": "0"
    },
    "features": [
      "voice"
    ],
    "needs_registration": 0,
    "registration_requirements": null
  }
}

კოორდინატორი იყენებს საკუთარ status.code/status.msg და response გარსს; გარანტირებული არ არის status.results ველის არსებობა. შეცდომისას პასუხის სია, როგორც წესი, ცარიელია. წარმატების შემთხვევაში შეამოწმეთ დაბრუნებული ნომერი და ფასი, შემდეგ კი შეაჯერეთ ანგარიშის ნომრების სია და რეგისტრაციის მდგომარეობა. პროვაიდერის მიერ მოთხოვნის მიღება ხმოვანი ზარების, SMS-ის ან ფაქსის რეალურ გამოცდას არ ნიშნავს.

შეცდომები და გაურკვეველი შედეგები

კოორდინატორის შედეგების ძირითადი კოდები
API კოდიმნიშვნელობა
403დამუშავება შეიძლება დაბლოკოს ანგარიშის ფასის ან შეძენის შეზღუდვებმა, მიუწვდომელმა შერჩეულმა ფასმა ან მიუწვდომელმა სარეგისტრაციო პროფილმა.
404ნომრის, ფასის ან პრეფიქსის შერჩევა არ არის მითითებული ან მიუწვდომელია.
409ნომერი უკვე აქტიურია, შეთავაზების დამცავი შემოწმების პირობა აღარ ემთხვევა ან ბლოკირება სხვა დაცულ ოპერაციას უჭირავს.
422რეგისტრაციის განხილულ დამუშავების გზებში რეგისტრაციის ინფორმაცია საჭიროა, არასრულია ან მისი სისტემაში შექმნა და გამართვა ვერ ხერხდება.
500 და პროვაიდერის ან ანგარიშის სხვა კოდებიპროვაიდერის, ადგილობრივი დამუშავების ან წესების შესრულების შეცდომა. ეს კოდები ყველა შემთხვევაში არ ადასტურებს, რომ შეძენა ან თანხის ჩამოჭრა არ მომხდარა.

წაიკითხეთ როგორც API პასუხის რეალური შიგთავსი, ისე HTTP სტატუსი. გარე პროვაიდერმა შეიძლება იჯარის მოთხოვნა მიიღოს მანამ, სანამ ადგილობრივი შეტყობინება, რეგისტრაცია ან სხვა დამუშავება წარუმატებლად დასრულდება. ადგილობრივი მარაგიდან ნომრების გამოყოფის ზოგიერთი ოპერაცია მონაცემთა ბაზის ტრანზაქციებს იყენებს, მაგრამ გარე პროვაიდერის შეკვეთებისთვის საყოველთაო უკუქცევის მექანიზმი არ არსებობს. ამ კოორდინატორს კლიენტის იდემპოტენტურობის გასაღები არ აქვს.

ხელახალ მცდელობამდე შეაჯერეთ მონაცემები

  1. მოთხოვნის ერთხელ გაგზავნამდე თქვენი აპლიკაციის შეკვეთის ჩანაწერში შეინახეთ დამტკიცებული ნომერი, ფასი და შეთავაზების ზედა ზღვრები.
  2. მოთხოვნის შემდეგ, მათ შორის ლოდინის დროის ამოწურვის ან შეცდომის შემთხვევაშიც, წაიკითხეთ იმავე ანგარიშის შეძენილი ნომრების სია და ნომრის დეტალები.
  3. თუ ნომერი არსებობს, შეძენის კიდევ ერთი მოთხოვნის გაგზავნის ნაცვლად გადაამოწმეთ მისი ფასი, განახლების პარამეტრი, მარშრუტიზაცია და რეგისტრაციის მდგომარეობა.
  4. თუ შედეგი კვლავ გაურკვეველია, ხელახალ მცდელობამდე მხარდაჭერის სამსახურს სთხოვეთ პროვაიდერის შეკვეთისა და ანგარიშის ბილინგის შეჯერება. მხოლოდ შეცდომის შეტყობინება ან ძველ ჟურნალში წარმატების მაჩვენებელი საკმარისი მტკიცებულება არ არის.
  5. მფლობელობისა და აქტივაციის დადასტურების შემდეგ შეასრულეთ ანგარიშის მარშრუტიზაციის ჩვეულებრივი შემოწმებები და მომსახურების ტესტები.