Я пытаюсь получить API «создать заказ» из API binance pay для осуществления платежей в моем приложении Kotlin для Android. Я следую документации API для создания полезных данных и подписи, но, к сожалению, она не работает.
Я получаю следующую ошибку: «errorMessage»: «Подпись для этого запроса недействительна».
Кто-нибудь может помочь?
private fun createSignature(payload: String, secretKey: String): String {
val sha512HMAC = Mac.getInstance("HmacSHA512")
val secretKeySpec =
SecretKeySpec(secretKey.toByteArray(), "HmacSHA512")
sha512HMAC.init(secretKeySpec)
val digest = sha512HMAC.doFinal(payload.toByteArray())
return digest.toHex()
}
val timestamp = System.currentTimeMillis() + clockOffset
val nonceStr = generateNonce()
val body = Gson().toJson(
OrderRequest(
Env("APP"),
merchantTradeNb,
0.02,
"USDT",
Goods("01", "D000", "7876763A3C", "phone", "Good new phone")
)
)
val payload = timestamp.toString() + "\n" + nonceStr + "\n" + body + "\n"
val signature: String = createSignature(
payload.toByteArray(Charsets.UTF_8).toString(), secretKey
).uppercase()
val retrofitData = retrofitBuilder.binanceApi.createOrder(
"application/json", timestamp, nonceStr, certSn, signature, body
)
retrofitData.enqueue(object : Callback {
override fun onResponse(
call: Call,
response: Response,
) {
response.body()
}
override fun onFailure(call: Call, t: Throwable) {
}
})
}
interface BinancePayApi {
@POST("/binancepay/openapi/v2/order")
fun createOrder(
@Header("Content-type") contentType: String,
@Header("BinancePay-Timestamp") timestamp: Long,
@Header("BinancePay-Nonce") nonce: String,
@Header("BinancePay-Certificate-SN") apiKey: String,
@Header("BinancePay-Signature") signature: String,
@Body request: String
): Call
}
Подробнее здесь: https://stackoverflow.com/questions/753 ... his-reques
{ "status": "FAIL", "code": "400002", "errorMessage": "Подпись для этого запроса недействительна." } ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Alert(data.status) завершается с ошибкой, когда status=false, но не когда status=true
Anonymous » » в форуме Jquery - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему xmlhttprequest return Status 0 на iPhone, но Status 200 в веб -браузере
Anonymous » » в форуме Html - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-