Ir para o conteúdo

Pagamento PhastPay

Criar um pagamento PhastPay

startPayment()

Para criar um pagamento é utilizada a função startPayment

Request

{
  "value": "20.00",
  "app_client_id": "228dbb16-1b8c-4503-a1ac-0531d0202b35",
  "print_customer_receipt": true,
  "print_merchant_receipt": true,
  "preview_customer_receipt": true,
  "preview_merchant_receipt": true,
  "application_id": "304",
  "application_name": "1.0.0.0",
  "service": "BIZUM",
  "country_code": "+351",
  "currency": "EUR",
  "phone_number": "000000000",
  "customer_name": "Manoel",
  "customer_email": "email@email.com"
}

Parâmetros

Nome Tipo Obrigatório Descrição
request String Sim Objeto contendo as informações da requisição de criação de pagamento.
callback ICallbackService Sim Interface que será executada para notificações de sucesso ou erro no processo de pagamento.

Detalhamento dos Parâmetros

request (startPayment)

Nome Tipo Obrigatório Descrição Padrão
value String Não Valor da requisição, em formato numérico com duas casas decimais, informado pelo usuário. Caso não seja preenchido (null), o PhastPay solicitará o valor. null
app_client_id String Sim Identificador único utilizado pelo app integrador para identificar as cobranças criadas. Suporta até 36 caracteres. -
print_customer_receipt Boolean Não Indica se o comprovante do cliente deve ser impresso após a confirmação do pagamento. true
print_merchant_receipt Boolean Não Indica se o comprovante do estabelecimento deve ser impresso após o pagamento. true
preview_customer_receipt Boolean Não Indica se o comprovante do cliente deve ser exibido após o pagamento. true
preview_merchant_receipt Boolean Não Indica se o comprovante do estabelecimento deve ser exibido após o pagamento. true
application_id String Sim Identificador da aplicação no portal da Paystore. -
application_name String Sim Nome da aplicação. -
service MBWAY, BIZUM Sim Identificador do serviço no qual a requisição de pagamento será criada. -
currency String Não Identificador da moeda a ser utilizada, conforme o padrão da ISO 4217. Caso não informado, será usada a moeda padrão da aplicação de pagamentos. -
county_code String Não Código de Discagem Direta Internacional. Caso não informado, o PhastPay solicitará esse dado. (DDI). null
phone_number String Não Número de telefone do consumidor para a requisição junto ao provedor de pagamento. Caso não informado, o PhastPay solicitará esse dado. null
customer_name String Não Nome do consumidor. null
customer_email String Não E-mail do consumidor.

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 StartPaymentResponse.
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 startPaymentService(
    phastPayClient: PhastPayClient,
    service: String,
    appClientId: String,
    applicationId: String,
    applicationName: String,
    value: String?,
    printCustomerReceipt: Boolean,
    printMerchantReceipt: Boolean,
    previewCustomerReceipt: Boolean,
    previewMerchantReceipt: Boolean,
    currency: String?,
    phoneNumber: String?,
    countyCode: String?,
    customerName: String?,
    customerEmail: String?
) {
    val gson: Gson = Gson()
    if (phastPayClient.isBound()) {
        val createPaymentRequest =
            StartPaymentRequest(service, appClientId,  applicationId,  applicationName,  value, printCustomerReceipt,  printMerchantReceipt,  currency,  countyCode, phoneNumber, customerName,customerEmail )
        val callback = object : PhastPayClient.ICallbackService {
            override fun onError(response: String?) {
                val responseError = gson.fromJson(response, StartPaymentResponse::class.java)
                println("Pagamento error: $response")

            }
            override fun onSuccess(response: String?) {
                val response = gson.fromJson(response, IpcResponseError::class.java)
                println("Pagamento: $response")
            }
        }
        phastPayClient.startPayment(
            gson.toJson(createPaymentRequest),
            callback
        )

    }
}

Requisições e Respostas

StartPaymentRequest

data class StartPaymentRequest(
    @SerializedName("service")
    val service: String,
    @SerializedName("app_client_id")
    val appClientId: String?,
     @SerializedName("application_id")
    val applicationId: String?,
    @SerializedName("application_name")
    val applicationName: String?,
    @SerializedName("value")
    val value: String?,
    @SerializedName("print_customer_receipt")
    val printCustomerReceipt: Boolean,
    @SerializedName("print_merchant_receipt")
    val printMerchantReceipt: Boolean,
    @SerializedName("preview_customer_receipt")
    val previewCustomerReceipt: Boolean,
    @SerializedName("preview_merchant_receipt")
    val previewMerchantReceipt: Boolean,
    @SerializedName("currency")
    val currency: Boolean?,
    @SerializedName("county_code")
    val countryCode: String?,
    @SerializedName("phone_number")
    val phoneNumber: String?,
    @SerializedName("customer_name")
    val customerName: String?,
    @SerializedName("customer_email")
    val customerEmail: String?,
)

StartPaymentResponse

data class StartPaymentResponse(
    @SerializedName("payment_id")
    val transactionId: String? = null,
    @SerializedName("app_client_id")
    val appClientId: String? = null,
    @SerializedName("status")
    val status: String? = null,
    @SerializedName("value")
    val value: String? = null,
    @SerializedName("iva")
    val iva: String? = null,
    @SerializedName("date_time")
)

IpcResponseError

class IpcResponseError (
    @SerializedName("error_message")
    val errorMessage: String
)