我正在尝试通过HPP方法将Adyen支付集成到iOS中。不断出错,我怀疑编码部分有问题。Merchant signature was not valid
以下是我用来创建请求正文的代码片段
var urlComponents = URLComponents()
urlComponents.queryItems = []
let contentKeys1: [String] = Array(content.keys)
for contentKey in contentKeys1 {
if let contentValue = content[contentKey] {
urlComponents.queryItems?.append(URLQueryItem(name: contentKey, value: contentValue))
}
}
self.httpBody = urlComponents.query?.data(using: .utf8)
在Android中,它工作正常,我在 iOS 中使用 android 创建的字符串进行测试,支付页面正在启动,没有任何错误。
以下是创建请求正文的 Android 代码片段
val query = StringBuilder()
if (providerDataset != null) {
for (providerData: ProviderData in providerDataset) {
val key = providerData.key
var value: String? = ""
try {
if (providerData.value != null)
value = URLEncoder.encode(providerData.value, StandardCharsets.UTF_8.toString())
} catch (e: UnsupportedEncodingException) {
e.printStackTrace()
}
val str = "$key=$value"
query.append(str).append("&")
}
}
return query.deleteCharAt(query.length - 1).toString()
我们在 iOS 中是否有一种编码方法与上述代码中的 Android 工作相同?
挣扎了很多天才弄明白。任何帮助都是非常可观的