Add QR Payment
This commit is contained in:
@@ -39,10 +39,10 @@ func (c *ClientService) CreatePayment(order entity.MidtransRequest) (*entity.Mid
|
||||
Client: c.client,
|
||||
}
|
||||
|
||||
paymentMethod := []midtrans.PaymentType{}
|
||||
var paymentMethod []midtrans.PaymentType
|
||||
|
||||
if order.PaymentMethod == "GOPAY" {
|
||||
paymentMethod = append(paymentMethod, midtrans.SourceGopay)
|
||||
if order.PaymentMethod == "QRIS" {
|
||||
paymentMethod = []midtrans.PaymentType{midtrans.SourceGopay}
|
||||
}
|
||||
|
||||
snapReq := &midtrans.SnapReq{
|
||||
@@ -83,3 +83,44 @@ func (c ClientService) getProductItems(products []entity.OrderItem) []midtrans.I
|
||||
|
||||
return items
|
||||
}
|
||||
|
||||
func (c *ClientService) CreateQrisPayment(order entity.MidtransRequest) (*entity.MidtransQrisResponse, error) {
|
||||
coreGateway := midtrans.CoreGateway{
|
||||
Client: c.client,
|
||||
}
|
||||
|
||||
req := &midtrans.ChargeReq{
|
||||
PaymentType: midtrans.SourceGopay,
|
||||
TransactionDetails: midtrans.TransactionDetails{
|
||||
OrderID: order.PaymentReferenceID,
|
||||
GrossAmt: order.TotalAmount,
|
||||
},
|
||||
}
|
||||
|
||||
// Request charge and retrieve response
|
||||
resp, err := coreGateway.Charge(req)
|
||||
if err != nil {
|
||||
logger.GetLogger().Error(fmt.Sprintf("error when creating QRIS payment: %v", err))
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Extract QR code URL from response actions
|
||||
var qrCodeURL string
|
||||
for _, action := range resp.Actions {
|
||||
if action.Name == "generate-qr-code" {
|
||||
qrCodeURL = action.URL
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if qrCodeURL == "" {
|
||||
logger.GetLogger().Error("error: QR code URL not provided in response")
|
||||
return nil, fmt.Errorf("QR code URL not provided in response")
|
||||
}
|
||||
|
||||
return &entity.MidtransQrisResponse{
|
||||
QrCodeUrl: qrCodeURL,
|
||||
OrderID: order.PaymentReferenceID,
|
||||
Amount: order.TotalAmount,
|
||||
}, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user