Imprimir comprovante¶
Imprimir comprovante de Pagamento ou Devolução¶
printReceipt¶
Warning
Funcionalidade disponível desde App PhastPay v1.1.0.0 e PhastPay-SDK v1.0.1.0.
Utiliza-se a função printReceipt para a impressão dos comprovantes de pagamento e devolução.
O tipo de comprovante retornado depende do status atual da transação.
Comportamento do Retorno¶
O sistema alterna o tipo de comprovante gerado com base no identificador enviado e no estado da transação:
Comprovante de Venda: Retornado quando uma venda está no seu status final e sem devoluções.
Comprovante de Devolução: Caso seja enviado o app_client_id ou payment_id, mas a transação já esteja em um estado de reembolso, o sistema retornará automaticamente o comprovante de devolução em vez do de venda.
Requisição¶
{
"app_client_id": "4d193f5f-b933-4658-a15b-0ba071e0ac38",
"payment_id": "4d193f5f-b933-4658-a15b-0ba071e0ac38",
"refund_id": "4d193f5f-b933-4658-a15b-0ba071e0ac38",
"application_id": "com.myapp",
"applicationName": "My App",
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
"print_customer_receipt": true,
"print_merchant_receipt": true
}
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
Será obrigatório o envio de um dos identificadores, como o app_client_id, payment_id ou refund_id
request (printReceipt)
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
app_client_id |
String |
Não | Identificador único utilizado pelo app integrador para identificar as cobranças criadas. Suporta até 36 caracteres. | - |
payment_id |
String |
Não | Identificador da Transação de Pagamento | - |
refund_id |
String |
Não | Identificador da Transação de Devolução. | - |
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso automaticamente. Observação: A impressão automática só ocorrerá se a visualização prévia (preview) do comprovante estiver desabilitada ( false). |
true |
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve deve ser exibido em tela. | true |
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido em tela. | true |
application_id |
String |
Sim | Identificador da aplicação no portal da Paystore. | - |
application_name |
String |
Sim | Nome da aplicaçã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. |
class PrintReceiptService @Inject constructor(
private val json: Json
) {
operator fun invoke(
phastPayClient: PhastPayClient,
phastPayPrintReceipRequest: PhastPayPrintReceiptRequest
) = callbackFlow {
val callback = object : PhastPayClient.ICallbackService {
override fun onError(response: String?) {
val responseError = response?.let { json.decodeFromString<PhastErrorResponse>(it) }
trySend(Result.failure(Exception(responseError?.errorMessage)))
close()
}
override fun onSuccess(response: String?) {
trySend(Result.success(response))
close()
}
}
try {
val request = json.encodeToString(phastPayPrintReceipRequest)
phastPayClient.printReceipt(request, callback)
} catch (e: Exception) {
trySend(Result.failure(e))
close()
}
awaitClose { }
}
}
PhastPayPrintReceiptRequest¶
@Serializable
data class PhastPayPrintReceiptRequest(
@SerialName("app_client_id")
val appClientId: String? = null,
@SerialName("payment_id")
val paymentId: String? = null,
@SerialName("refund_id")
val refundId: String? = null,
@SerialName("application_id")
val applicationId: String = "",
@SerialName("application_name")
val applicationName: String = "",
@SerialName("print_customer_receipt")
val printCustomerReceipt: Boolean = true,
@SerialName("print_merchant_receipt")
val printMerchantReceipt: Boolean = true,
@SerialName("preview_customer_receipt")
val previewCustomerReceipt: Boolean = true,
@SerialName("preview_merchant_receipt")
val previewMerchantReceipt: Boolean = true,
)