2016-03-21 17 views
0

NasılMağaza benzersiz bir değer 4.2

Lütfen beni öneririz aynı sayıda saklamalısınız transaction_id $payment->transaction_id = Input::get('transact'); benzersiz Artık saklamak için.

public function ddclback() 
    { 

     if(Input::get('statuscode') == 2){ 
      //Save data into the Database 
      $payment      = new Payment; 
      $payment->order_id   = Input::get('orderid'); 
      $payment->amount    = (Input::get('base_amount', 0))?Input::get('base_amount'):Input::get('amount'); 
      $payment->amount    = $payment->amount/100; 
      $payment->cc_fee    = Input::get('processing_fee', 0); 
      $payment->payment_type  = 'CCD-'.Input::get('currency'); 
      $payment->currency   = Input::get('currency'); 
      $payment->exchange_rate  = $this->getExchangeRate(Input::get('currency')); 
      $payment->gateway   = 'DIBS'; 
      $payment->payment_date  = date('Y-m-d'); //\Carbon\Carbon::today()->toDateString(); 
      $payment->card_type   = Input::get('paytype'); 
      $payment->transaction_id  = Input::get('transact'); 
      $payment->customer_ip  = $_SERVER['REMOTE_ADDR']; 
      $payment->save(); 

      Order::ccid(Input::get('orderid')); 
      Order::upord(Input::get('orderid')); 
     } 

    } 

cevap

1

DB'ye kayıt eklemeden önce tümce ile kontrol etmelisiniz. kodunun altına

Dene:

public function ddclback() { 

    if (Input::get('statuscode') == 2) { 
     $exist = $this->checkExist(Input::get('orderid'), Input::get('transact')); // check if exist it will return true/ false 
     if (!$exist) { 

      //Save data into the Database if not exist 
      $payment = new Payment; 
      $payment->order_id = Input::get('orderid'); 
      $payment->amount = (Input::get('base_amount', 0)) ? Input::get('base_amount') : Input::get('amount'); 
      $payment->amount = $payment->amount/100; 
      $payment->cc_fee = Input::get('processing_fee', 0); 
      $payment->payment_type = 'CCD-' . Input::get('currency'); 
      $payment->currency = Input::get('currency'); 
      $payment->exchange_rate = $this->getExchangeRate(Input::get('currency')); 
      $payment->gateway = 'DIBS'; 
      $payment->payment_date = date('Y-m-d'); //\Carbon\Carbon::today()->toDateString(); 
      $payment->card_type = Input::get('paytype'); 
      $payment->transaction_id = Input::get('transact'); 
      $payment->customer_ip = $_SERVER['REMOTE_ADDR']; 
      $payment->save(); 

      Order::ccid(Input::get('orderid')); 
      Order::upord(Input::get('orderid')); 
     } 
    } 
} 
public function checkExist($orderId, $transactionId) { 
    $existRecord = Payment::where('order_id', $orderId)->where('transaction_id', $transactionId)->get()->toArray(); 
    if ($existRecord) { 
     return true; 
    } else { 
     return false; 
    } 
} 
+0

Dhaval ne ben onu $ Ödemeler> TRANSACTION_ID = Girdi :: ('Transact') almak tahmin ediyorum; dibs arkadan geliyor benzersiz bt gelmelidir bazen aynı işlem kimliği ile 5 kez çağırıyor id neden herhangi bir fikir bilmiyorum – Jimmy

+0

Bu işlevin çağrıldığı yerden kodu kontrol etmelisiniz. –

+0

db'de order_id'nin mevcut olup olmadığını nasıl kontrol edebilir ve transaction_id var aynı kodu sadece bir veri kaydeder – Jimmy