Я пытаюсь получить ответ от woo commerce api , используя Volley ' GET Метод в Kotlin . Я сгенерировал все необходимые параметры, но не смог получить ответ.
Формат для URL GET должен быть таким:
http://www.tronosoft.in/demo/wordpress/wp-json/wc/v2/products?oauth_consumer_key=ck_22694c9d56cc1e03cff4cc2615xxxxxxxxxxx&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1561550709&oauth_nonce=cd22f6f0-d37e-46b9-9ae2-b49e4c33d6aa&oauth_version=1.0&oauth_signature=W0JAOThkMGZkNQ==
Код, который я использую для генерации всех параметров:
fun productApi() {
//val oauth = AuthPermission() //Auth0(String(""))
val consumerKey = "ck_22694c9d56cc1e03cff4cc2615xxxxxxxxxxxx"
val consumerSecret = "cs_57ed10e0cb3e2de073184983ffxxxxxxxxxxxx"
val nonce = UUID.randomUUID()
val time: Long = System.currentTimeMillis() / 1000
Log.d("PRODUCTTIME", time.toString())
val url = baseUrl + "products?oauth_consumer_key=ck_22694c9d56cc1e03cff4cc2615xxxxxxxxxxxx&oauth_signature_method=HMAC-SHA1&oauth_timestamp=$time&oauth_nonce=mKcxEHLuAVk&oauth_version=1.0"
val signature = Mac.getInstance("HmacSHA1")
val secret = SecretKeySpec(consumerKey.toByteArray(), signature.algorithm)
signature.init(secret)
Log.d("PRODUCTNAL", signature.toString())
val digssss = signature.doFinal(url.toByteArray())
Log.d("PRODUCTDIG", digssss.toString())
val result = Base64.encodeUrlSafe(digssss.toString())
Log.d("PRODUCTSIG", result.toString())
val urlT = baseUrl + "products?oauth_consumer_key=" + consumerKey + "&oauth_signature_method=HMAC-SHA1&oauth_timestamp=$time&oauth_nonce=$nonce&oauth_version=1.0&oauth_signature=$result"
Log.d("PRODUCTURL", urlT)
val request = object : StringRequest(Method.GET, urlT, Response.Listener { response ->
Log.d("PRODUCTLIST", response.toString())
}, Response.ErrorListener { error ->
Log.d("PRODUCTERROR", error.toString())
}){}
val requestQ = Volley.newRequestQueue(context)
requestQ.add(request)
}
Но я получаю сообщение об ошибке com.android.volley.AuthFailureError
И в Интернете это показывает, что Неверная подпись - предоставленная подпись не совпадает
Я посмотрел другие вопросы на SO по этой проблеме, но ни один из них не в залпе с kotlin.