1

我正在尝试使用 Daraja 提供的程序将 MPESA API 集成到我的 android 应用程序中。在启动我的应用程序时,我的 Logcat 中显示以下错误

D/OkHttp: {
                    "requestId": "16583-1090909-1",
                    "errorCode": "400.008.02",

D/OkHttp:“errorMessage”:“通过了无效的授权类型”}

在输入要发送的电话号码和金额后,Sim Toolkit 不会被带到前面。我的Logcat中显示如下错误

D/OkHttp: {
                    "requestId":"29178-5342114-1",

D/OkHttp:“errorCode”:“404.001.04”,“errorMessage”:“无效的身份验证标头”}

这是我的预期:按下“支付”按钮时,应该会提示我进入 sim 工具包,请求我的 Mpesa 密码以继续付款。

我将不胜感激将提供的任何帮助。

4

1 回答 1

0

我有同样的问题。我意识到在收到身份验证令牌之前我正在执行 STK 推送。您可以在执行 STK 推送之前使用全局变量进行检查

var isReady = false  // global variable
//Access token Method being called.
private fun getAccessToken() {
    mApiClient!!.setGetAccessToken(true)
    mApiClient!!.mpesaService()!!.getAccessToken().enqueue(object : Callback<AccessToken> {
        override fun onResponse(call: Call<AccessToken?>, response: Response<AccessToken>) {
            if (response.isSuccessful) {
                mApiClient!!.setAuthToken(response.body()?.accessToken)
                //Timber.e("Success: ${response.body()?.accessToken}")
                isReady = true //
            }
        }
        override fun onFailure(call: Call<AccessToken?>, t: Throwable) {}
    })
}
于 2021-06-08T06:42:24.403 回答