74 lines
1.6 KiB
Go
74 lines
1.6 KiB
Go
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
|
|
//}
|