30 lines
979 B
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)
|
|
}
|