AbortPayment¶
Abortar Pagamentos¶
abortPayment()¶
Warning
Funcionalidade disponível desde App PhastPay v1.1.0.0 e PhastPay-SDK v1.0.1.0
Utiliza-se a função abortPayment para abortar uma requisição de pagamento.
Request¶
{
"app_client_id": "d688f184-0d8d-4b66-93d1-4fec90f1bdd4"
}
Parâmetros¶
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
String |
Sim | Objeto contendo as informações da requisição de abort. |
callback |
ICallbackService |
Sim | Interface que será executada para notificações de sucesso ou erro no processo de abort. |
Detalhamento dos Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
app_client_id |
String |
Sim | Identificador da aplicação cliente responsável por solicitar o abort do pagamento. |
Detalhamento dos Parâmetros
callback (ICallbackService)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
onSuccess |
String |
Sim | Método chamado em caso de sucesso. A resposta será uma String, em formato JSON, contendo os campos definidos na classe PhastPayAbortPaymentResponse. |
onError |
String |
Sim | Método chamado em caso de erro. A resposta será uma String, em formato JSON, contendo os campos definidos na classe |
Response¶
{
"result": true
}
Detalhamento dos Parâmetros
response (getQrCode)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
result |
Boolean |
Sim | Indica se a solicitação de abort foi processada com sucesso. |
class AbortPaymentService @Inject constructor(
private val json: Json
) {
operator fun invoke(
phastPayClient: PhastPayClient,
phastPayAbortPaymentRequest: PhastPayAbortPaymentRequest
) = callbackFlow {
val callback = object : PhastPayClient.ICallbackService {
override fun onError(response: String?) {
val responseError = response?.let {
runCatching { json.decodeFromString<PhastErrorResponse>(it) }.getOrNull()
}
trySend(Result.failure(Exception(responseError?.errorMessage ?: response ?: "Erro desconhecido")))
close()
}
override fun onSuccess(response: String?) {
if (response.isNullOrBlank()) {
Log.d(ConstantsUtils.TAG, "Resposta vazia do app-phastpay")
close()
return
}
val result = runCatching {
json.decodeFromString<PhastPayAbortPaymentResponse>(response)
}
result.onSuccess { res ->
trySend(Result.success(res))
}.onFailure { erro ->
trySend(Result.failure(Exception("Falha ao processar dados: ${erro.message}")))
}
close()
}
}
try {
val request = json.encodeToString(phastPayAbortPaymentRequest)
phastPayClient.abortPayment(request, callback)
} catch (e: Exception) {
trySend(Result.failure(e))
close()
}
awaitClose { }
}
}
PhastPayAbortPaymentRequest¶
@Serializable
data class PhastPayAbortPaymentRequest(
@SerialName("app_client_id")
val appClientId: String,
)
PhastPayAbortPaymentResponse:¶
@Serializable
data class PhastPayAbortPaymentResponse(
@SerialName("result")
val result: Boolean,
)