2024-03-15 21:27:45 +03:00
package services
2024-05-03 11:57:53 +03:00
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 )
}
}
2024-03-26 02:21:35 +03:00
//
//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
//}