编程不将验证码发送到给定的电话号码

问题描述 投票:0回答:1

我正在尝试弄清楚如何在注册验证其号码时向用户发送验证码。我正在尝试关注在线资源(下面的代码),但它似乎不起作用。当我将电话号码作为'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()
}
ios swift path
1个回答
1
投票

您正在调用POST,但将值传递给URL,就好像它是GET一样。您应该使用httpBody进行POST。

© www.soinside.com 2019 - 2024. All rights reserved.