transbank

package module
v0.0.0-...-e54bcae Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 31, 2021 License: GPL-3.0 Imports: 0 Imported by: 0

README

Unofficial Transbank SDK Golang

Implementación de Transbank SDK (Chile) no oficial para Golang.

Aclaración:

Este repositorio es un fork de transbank-sdk-golang. Este repositorio incluye el método acknowledgeTransaction() de WebPay Plus normal que permite confirmar la recepción de una transacción. Este método es ejecutado automáticamente al recibir una respuesta válida del método getTransactionResult().

Requisitos:

  • Golang X.Y.Z (zero dependencies)

Instalación

go get -v github.com/dokshor/transbank-sdk-golang

Documentación

Puedes ver la documentación generada en pkg.go.dev para ver la implementación de la librería. También puedes consultar la documentación oficial.

Ejemplo

Iniciar Transacción con Webpay Plus Normal (Integración)

amount := float64(1000)
sessionID := "mi-id-de-sesion"
buyOrder := strconv.Itoa(rand.Intn(99999))
returnURL := "https://callback/resultado/de/transaccion"
finalURL := "https://callback/final/post/comprobante/webpay"

service := webpay.NewIntegrationPlusNormal()
transaction, err := service.InitTransaction(amount, sessionID, buyOrder, returnURL, finalURL)
if err != nil {
  log.Fatalln(err)
}

log.Println(transaction.URL) // https://webpay3gint.transbank.cl/webpayserver/initTransaction
log.Println(transaction.Token) // e95675887afd8c5ad7d7e146468452fc4bc896541688c78cd781ded0ddef0260

Puedes ver más ejemplos sobre la implementación de los demás servicios en /cmd

Tareas Pendientes

  • SOAP: soporte a los posibles errores que pueda devolver el servidor.
  • SOAP: verificar si la firma del XML en la respuesta es válida con los certificados designados.
  • Plus Normal: implementar método para InitTransaction con SOAP.
  • Plus Normal: implementar test para InitTransaction con SOAP.
  • Plus Normal: implementar método para GetTransactionResult con SOAP.
  • Plus Normal: implementar test para GetTransactionResult con SOAP.
  • Plus Mall: implementar método para Plus Mall con SOAP/HTTP.
  • Plus Mall: implementar test para Plus Mall con SOAP/HTTP.
  • Patpass: implementar método InitTransaction con SOAP.
  • Patpass: implementar test para InitTransaction con SOAP.
  • Patpass: implementar método GetTransactionResult con SOAP.
  • Patpass: implementar test para GetTransactionResult con SOAP.
  • One Click: implementar métodos para OneClick usando SOAP/HTTP.
  • One Click: implementar tests para OneClick usando SOAP/HTTP.
  • One Click Mall: implementar métodos para OneClick Mall usando SOAP/HTTP.
  • One Click Mall: implementar tests para OneClick Mall usando SOAP/HTTP.
  • Capture: implementar métodos para Capture usando SOAP/HTTP.
  • Capture: implementar tests para Capture usando SOAP/HTTP.
  • Nullify: implementar métodos para Nullify usando SOAP/HTTP.
  • Nullify: implementar tests para Nullify usando SOAP/HTTP.
  • API Rest: implementar package http para montar un webservice usando un docker.

Licencia

GNU General Public License v3.0 ver

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CardDetail

type CardDetail struct {
	CardNumber         string `json:"card_number"`
	CardExpirationDate string `json:"card_expiration_date"`
}

CardDetail represent the values of customer card

type DetailOutput

type DetailOutput struct {
	SharesNumber      int    `json:"shares_number"`
	Amount            int    `json:"amount"`
	CommerceCode      string `json:"commerce_code"`
	BuyOrder          string `json:"buy_order"`
	AuthorizationCode string `json:"authorization_code"`
	PaymentTypeCode   string `json:"payment_type_code"`
	ResponseCode      string `json:"response_code"`
}

DetailOutput represent transaction details values

type InitTransaction

type InitTransaction struct {
	Amount    int    `json:"amount"`
	SessionID string `json:"session_id"`
	ReturnURL string `json:"return_url"`
	FinalURL  string `json:"final_url,omitempty"`
	BuyOrder  string `json:"buy_order"`

	Stores *[]Store `json:"stores"`

	WPMDetail *WPMDetail `json:"wpm_detail"`
}

InitTransaction represents the "initTransactionRequest" to SOAP server webpay plus normal, its the base params to use on plus services

type InitTransactionResponse

type InitTransactionResponse struct {
	URL   string `json:"url"`
	Token string `json:"token"`
}

InitTransactionResponse represents the "initTransactionResponse" from SOAP server

type OneCLick

type OneCLick interface {
	InitInscription(params interface{})
	FinishInscription(token string)
	Authorize(params interface{})
	ReverseTransaction(buyorder string)
	RemoveUser(tbkUser string, username string)
}

OneCLick WIP: define all OneCLick service methods

type OneCLickMall

type OneCLickMall interface{}

OneCLickMall WIP: represents the "initTransactionRequest" to SOAP server webpay plus normal

type Store

type Store struct {
	CommerceCode string `json:"commerce_code"`
	Amount       int    `json:"amount"`
	BuyOrder     string `json:"buy_order"`
}

Store WIP: ...

type Transaction

type Transaction interface {
	InitTransaction(params InitTransaction) (*InitTransactionResponse, error)
	GetTransactionResult(token string) (*TransactionResultResponse, error)
}

type TransactionResultResponse

type TransactionResultResponse struct {
	AccountingDate  string       `json:"accounting_date"`
	BuyOrder        string       `json:"buy_order"`
	CardDetail      CardDetail   `json:"card_detail"`
	DetailOutput    DetailOutput `json:"detail_output"`
	SessionID       string       `json:"session_id"`
	TransactionDate string       `json:"transaction_date"`
	URLRedirection  string       `json:"url_redirection"`
	VCI             string       `json:"vci"`
}

TransactionResultResponse represents the "getTransactionResultResponse" SOAP server response

type WPMDetail

type WPMDetail struct {
	ServiceID           string `json:"service_id"`
	CardHolderID        string `json:"card_holder_id"`
	CardHolderName      string `json:"card_holder_name"`
	CardHolderLastName1 string `json:"card_holder_last_name_1"`
	CardHolderLastName2 string `json:"card_holder_last_name_2"`
	CardHolderMail      string `json:"card_holder_mail"`
	CellPhoneNumber     string `json:"cell_phone_number"`
	ExpirationDate      string `json:"expiration_date"`
	CommerceMail        string `json:"commerc_mail"`
	UfFlag              bool   `json:"uf_flag"`
}

WPMDetail respresent the "WPMDetail" with user's inscription data

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL