有些字段不会作为Alamofire中的json对象进入服务器



我正试图通过以下格式将带有测试卡详细信息的JSON对象发送到服务器。

{
"card": {
"number": "5555555555554444",
"name_on_card": "TEST",
"security_code": 123,
"expiry_month": 12,
"expiry_year": 30
},
"payment_card_session_id": "SESSIONXXXXXXXXXXXXXX",
"device_data": {
"browser": "SAFARI",
"browserDetails": {
"3DSecureChallengeWindowSize": "FULL_SCREEN",
"acceptHeaders": "application/json",
"colorDepth": 24,
"javaEnabled": true,
"language": "en-US",
"screenHeight": 640,
"screenWidth": 480,
"timeZone": 273
},
"ipAddress": "127.0.0.1"
}
}

我是这样寄的。

let param = [
"card":[
"number": cardNum,
"name_on_card": cardName as Any,
"security_code": securityCode as Any,
"expiry_month": expiryMonth as Any,
"expiry_year": expiryYear as Any
],
"payment_card_session_id": self.sessionID ?? "",
"device_data": [
"browser": "SAFARI",
"browserDetails": [
"3DSecureChallengeWindowSize": "FULL_SCREEN",
"acceptHeaders": "application/json",
"colorDepth": 24,
"javaEnabled": true,
"language": "en-US",
"screenHeight": 540,
"screenWidth": 375,
"timeZone": 273
],
"ipAddress": "127.0.0.1"
]
] as [String : Any]

print("Sent Params for Authenticate Payer: (param)")
//   param3d = ["payment_card_session_id": self.sessionID ?? ""] as [String : AnyObject]
AF.request(url, method: .post, parameters: param, encoding: URLEncoding(), headers: headers).responseJSON { response in
switch response.result {
case let .success(value):
let json = JSON(value)
print("authenticate payer Responce: (json)")
case let .failure(error):
print("Error: (error)")
}

我得到这个错误作为响应

{"卡片":["此字段为必填字段"],"device_data":["此字段为必填字段"]}

有人能找出这里出了什么问题并更正答案吗。提前感谢。

当我从URLEncoding((更改为JSONEncoding时,它就工作了。谢谢大家的评论。

最新更新