Я пытаюсь выяснить, как отправить код подтверждения пользователю при регистрации, чтобы подтвердить его номер.Я пытаюсь следить за онлайн-ресурсами (код ниже), но, похоже, это не работает.Когда я ввожу номер телефона в виде номера «xxxyyyzzzz» или «xxx-yyy-zzzz» (с кодом страны, отформатированным так же, как и номер, без «+»), в консоли появляется сообщение об ошибке, что номер телефона не являетсяправильно отформатирован.Я не уверен, является ли это источником моей проблемы, но на данный момент это кажется наиболее вероятным.Что меня смущает, так это то, что онлайн мне говорят, что любой из этих форматов будет работать.Любая помощь?Код:
static let path = Bundle.main.path(forResource: "Config", ofType: "plist")
static let config = NSDictionary(contentsOfFile: path!)
private static let baseURLString = config!["serverUrl"] as! String
@IBOutlet var countryCodeField: UITextField! = UITextField()
@IBOutlet var phoneNumberField: UITextField! = UITextField()
@IBAction func sendVerification(_ sender: Any) {
if let phoneNumber = phoneNumberField.text,
let countryCode = countryCodeField.text {
SignUp2ViewController.sendVerificationCode(countryCode, phoneNumber)
}
}
static func sendVerificationCode(_ countryCode: String, _ phoneNumber: String) {
let parameters = [
"via": "sms",
"country_code": countryCode,
"phone_number": phoneNumber
]
let path = "start"
let method = "POST"
let urlPath = "\(baseURLString)/\(path)"
var components = URLComponents(string: urlPath)!
var queryItems = [URLQueryItem]()
for (key, value) in parameters {
let item = URLQueryItem(name: key, value: value)
queryItems.append(item)
}
components.queryItems = queryItems
let url = components.url!
var request = URLRequest(url: url)
request.httpMethod = method
let session: URLSession = {
let config = URLSessionConfiguration.default
return URLSession(configuration: config)
}()
let task = session.dataTask(with: request) {
(data, response, error) in
if let data = data {
do {
let jsonSerialized = try JSONSerialization.jsonObject(with: data, options: []) as? [String : Any]
print(jsonSerialized!)
} catch let error as NSError {
print(error.localizedDescription)
}
} else if let error = error {
print(error.localizedDescription)
}
}
task.resume()
}