Devolução¶
Devolução de um Pagamento¶
startRefund()¶
Para criar uma devolução é utilizada a função startRefund.
Request¶
{
"payment_id": "b849b36b-7846-48f8-81ce-a8dbf2530f42",
"application_id": "304",
"application_name": "1.0.0.0",
"value": "10.00",
"print_customer_receipt": true,
"print_merchant_receipt": true,
"preview_customer_receipt": true,
"preview_merchant_receipt": true,
}
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
request |
String |
Sim | Objeto contendo as informações da requisição de criação de uma devolução. |
callback |
ICallbackService |
Sim | Interface que será executada para notificações de sucesso ou erro no processo de pagamento. |
Detalhe dos Parâmetros
request (startRefund)
| Nome | Tipo | Obrigatório | Descrição | Padrão |
|---|---|---|---|---|
payment_id |
String |
Sim | O paymentId representa o id da transação de pagamento. | - |
print_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser impresso após a confirmação da devolução. | true |
print_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser impresso após a confirmação da devolução. | true |
preview_customer_receipt |
Boolean |
Não | Indica se o comprovante do cliente deve ser exibido após a confirmação da devolução. | true |
preview_merchant_receipt |
Boolean |
Não | Indica se o comprovante do estabelecimento deve ser exibido após a confirmação da devolução. | true |
application_id |
String |
Sim | Identificador da aplicação no portal da Paystore. | - |
application_name |
String |
Sim | Nome da aplicação. | - |
value |
String |
Não | Valor da devolução, em formato numérico com duas casas decimais, informado pelo usuário. Caso não seja preenchido (null), o PhastPay realizará a devolução total do valor. |
null |
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 StartRefundResponse. |
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. |
fun startRefundService(
phastPayClient: PhastPayClient,
paymentId: String,
applicationId: String,
applicationName: String,
value: String?,
printCustomerReceipt: Boolean?,
printMerchantReceipt: Boolean?,
previewCustomerReceipt: Boolean?,
previewMerchantReceipt: Boolean?,
) {
val gson: Gson = Gson()
val startRequest = StartRefundRequest(applicationId, applicationName, paymentId, value printCustomerReceipt, printMerchantReceipt)
val callback = object : PhastPayClient.ICallbackService {
override fun onError(response: String?) {
val responseError = gson.fromJson(response, IpcResponseError::class.java)
println("Erro ao devolver $responseError")
}
override fun onSuccess(response: String?) {
val responseSuccess = gson.fromJson(response, StartRefundResponse::class.java)
println("Devolvido $responseSuccess")
}
}
phastPayClient.startRefund(
gson.toJson(startRequest),
callback
)
}
Requisições e Respostas¶
StartRefundRequest¶
class StartRefundRequest(
@SerializedName("application_id")
val applicationId: String,
@SerializedName("application_name")
val applicationName: String,
@SerializedName("payment_id")
val paymentId: String,
@SerializedName("value")
val value: String? = null,
@SerializedName("print_customer_receipt")
val printCustomerReceipt: Boolean? = null,
@SerializedName("print_merchant_receipt")
val printMerchantReceipt: Boolean? = null,
@SerializedName("preview_customer_receipt")
val previewCustomerReceipt: Boolean? = null,
@SerializedName("preview_merchant_receipt")
val previewMerchantReceipt: Boolean? = null
) {
fun toJson(): String {
return Gson().toJson(this)
}
}
StartRefundResponse¶
data class StartRefundResponse(
@SerializedName("refund_id")
val refundId: String?,
@SerializedName("app_client_id")
val appClientId: String,
@SerializedName("status")
val status: String,
@SerializedName("value")
val value: Stringl,
@SerializedName("iva")
val iva: String,
@SerializedName("date_time")
val dateTime: String,
)
IpcResponseError¶
class IpcResponseError (
@SerializedName("error_message")
val errorMessage: String
)