QrCode¶
Obter QrCode¶
getQrCode()¶
Warning
Funcionalidade disponível desde App PhastPay v1.1.0.0 e PhastPay-SDK v1.0.1.0
Utiliza-se a função getQrCode para obter o QRCODE para pagamentos.
Request¶
{
"provider_id": "4d193f5f-b933-4658-a15b-0ba071e0ac38",
"service": "TWINT"
}
Parâmetros¶
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
String |
Sim | Objeto contendo as informações da requisição de consulta. |
callback |
ICallbackService |
Sim | Interface que será executada para notificações de sucesso ou erro no processo de consulta. |
Detalhamento dos Parâmetros
request (getQrCode)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
provider_id |
String |
Sim | Id do Provedor |
service |
String |
Sim | Serviço |
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 GetQrCodeResponse. |
onError |
String |
Sim | Método chamado em caso de erro. A resposta será uma String, em formato JSON, contendo os campos definidos na classe IpcResponseError. |
Response¶
{
"imageFormat": "PNG",
"base64": "data:image/png;base64,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"
}
Detalhamento dos Parâmetros
response (getQrCode)
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
base64 |
String |
Sim | A imagem do QR Code gerada em base64. |
imageFormat |
String |
Sim | Formato da imagem em base64. |
class GetQrCodeService @Inject constructor(
private val json: Json
) {
operator fun invoke(
phastPayClient: PhastPayClient,
getQrCodeRequest: PhastPayGetQrCodeRequest,
) = callbackFlow {
val callback = object : PhastPayClient.ICallbackService {
override fun onError(response: String?) {
val result = runCatching {
val responseError = response?.let { json.decodeFromString<PhastErrorResponse>(it) }
Exception(responseError?.errorMessage)
}.getOrElse { Exception("Erro desconhecido: $response") }
trySend(Result.failure(result))
close()
}
override fun onSuccess(response: String?) {
if (response.isNullOrBlank()) {
Log.d(ConstantsUtils.TAG, "Resposta vazia do app-phaspay")
close()
return
}
val result = runCatching {
json.decodeFromString< PhastPayGetQrCodeResponse>(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(getQrCodeRequest)
phastPayClient.getQrCode(request, callback)
} catch (e: Exception) {
trySend(Result.failure(e))
close()
}
awaitClose {}
}
}
GetQrCodeRequest¶
@Serializable
data class PhastPayGetQrCodeRequest(
@SerialName("provider_id")
val providerId: String = "",
@SerialName("service")
val service: Service,
)
GetQrCodeResponse:¶
@Serializable
data class PhastPayGetQrCodeResponse (
val base64: String,
val imageFormat: ImageFormat
)
Veja os formatos de imagem suportados aqui.