Onfido沙箱错误422无法处理的实体验证

时间:2018-02-16 15:57:21

标签: ios swift alamofire

我试图在Onfido沙箱环境中创建一个支票,当我使用curl或python代码时它工作正常,而当我使用swift执行相同的请求时我收到错误422 iOS版。 这是确认在python中工作的代码:

def identity_check(self, applicant_id: str) -> dict:
        return self._post(
            'applicants/{}/checks'.format(applicant_id),
            data={
                'type': 'express',
                'reports[][name]': 'identity',
                'reports[][variant]': 'kyc',
            }
        )

这是给我错误422的快速代码:

 func executeCheck() {
        let headers: HTTPHeaders = [
            "Authorization": "Token token=\(token)",
            "Accept": "application/json",
        ]
        let parameters: [String: Any] = [
            "type": "express",
            "reports[][name]": "identity",
            "reports[][variant]": "kyc"
        ]
        Alamofire.request(
            "https://api.onfido.com/v2/applicants/\(self.applicantId)/checks",
            method: .post,
            parameters: parameters,
            encoding: JSONEncoding.default,
            headers: headers).validate().responseJSON { (response: DataResponse<Any>) in
                guard response.error == nil else {
                    return
                }
                self.saveCompletedDocumentState()
        }
    }

1 个答案:

答案 0 :(得分:0)

这个特殊问题与滥用Alamofire有关,尤其是'reports[][name]': 'identity'的嵌套。你应该通过拥有一个子对象"reports": ["name": "identity"]来嵌套。

然而,启动onfido检查的推荐方法是在后端执行。 此外,api的任何问题都可以通过Onfido技术支持来解答api@onfido.com