veza/veza-backend-api/internal/services/hyperswitch/provider.go

30 lines
979 B
Go

package hyperswitch
import (
"context"
"veza-backend-api/internal/core/marketplace"
)
// Ensure Provider implements marketplace.PaymentProvider
var _ marketplace.PaymentProvider = (*Provider)(nil)
// Provider adapts the Hyperswitch client to marketplace.PaymentProvider.
type Provider struct {
client *Client
}
// NewProvider creates a new Hyperswitch payment provider.
func NewProvider(client *Client) *Provider {
return &Provider{client: client}
}
// CreatePayment creates a payment in Hyperswitch.
func (p *Provider) CreatePayment(ctx context.Context, amount int64, currency, orderID, returnURL string, metadata map[string]string) (paymentID, clientSecret string, err error) {
return p.client.CreatePaymentSimple(ctx, amount, currency, orderID, returnURL, metadata)
}
// GetPayment retrieves payment status from Hyperswitch.
func (p *Provider) GetPayment(ctx context.Context, paymentID string) (string, error) {
return p.client.GetPaymentStatus(ctx, paymentID)
}