Este package es un wrapper de la API de Openpay.
Para interactuar con la API de Openpay se debe crear una instancia de Merchant
(la cual es segura para uso concurrente). Posteriormente, todas las instancias de Customer
obtenidas a través de peticiones a la API tendrán una referencia al Merchant
al que pertenecen. Esta referencia es necesaria para hacer operaciones en cuentas de clientes; si una instancia de Customer
no se obtiene a través de la API, es necesario proveer una referencia a un Merchant
manualmente. Para más información, ver la documentación de GoDoc.
import (
"github.com/ElPincheTopo/openpay"
)
func main() {
merchant := openpay.NewMerchant("myMerchantID", "myPrivateKey")
customer, err := merchant.AddCustomer(&openpay.CustomerArgs{
Name: "Juan",
LastName: "Perez",
Email: "juan@email.com",
Address: openpay.Address{
// etc.
},
})
if err != nil {
panic(err)
}
card, err := customer.AddCardWithToken(&openpay.CardTokenArgs{
TokenID: "aCardToken",
DeviceSessionID: "aSessionID",
})
if err != nil {
panic(err)
}
var dst openpay.Charge
err = customer.ChargeCustomer(&openpay.ChargeArgs{
Source_id: "aCardToken",
Method: "card",
Amount: 100.50,
Currency: "MXN",
Description: "Cargo inicial a mi cuenta",
Order_id: "oid-00051",
Device_session_id: "aSessionID",
}, &dst)
if err != nil {
panic(err)
}
}