package services import ( "context" "log" "relynolli-server/external/bitrix" "relynolli-server/external/kassa" "relynolli-server/storage" "time" ) func PaymentValidation() { ctx := context.Background() s := storage.NewStorageOrder() api := bitrix.Initialize() for { payments, err := s.GetPayments(ctx) if err != nil { panic(err.Error()) } for _, payment := range *payments { result, _ := kassa.CheckPayment(payment.ID) if result == nil { continue } payment.Status = result.Status if result.Status == "succeeded" { err := api.ApprovePayment(int(payment.BitrixPayment.ID), 8) if err != nil { log.Println(err.Error()) continue } } if result.Status == "canceled" { err := api.CancelOrder(int(payment.OrderId)) if err != nil { log.Println(err.Error()) } } s.UpdatePayment(ctx, &payment) time.Sleep(1 * time.Second) } time.Sleep(5 * time.Second) } } // //func YookassaValidate(paymentId string, status string) { // stmt := fmt.Sprintf(`select t1.order_id as order_id, t2.ID as payment_id from api_youkassa_payment t1 join b_sale_order_payment t2 on t1.order_id = t2.ORDER_ID where t1.payment_id = '%s';`, paymentId) // db := internal.InitDatabase() // rows := db.Query(stmt) // // var ( // orderId int // paymentIdBitrix int // ) // // rows.Next() // rows.Scan(&orderId, &paymentIdBitrix) // // api := bitrix.Initialize() // if status == "succeeded" { // api.ApprovePayment(paymentIdBitrix, 8) // return // } // if status == "canceled" { // api.CancelOrder(orderId) // return // } // return //}