<?php

function checkIpn()
{
  global $tblPaypal;
  global $tblUser;
 
  $filter=["payload.receiver_email"=>"info@dance4passion.co.uk","validation-result"=>null];
  $ck=$tblPaypal->count($filter);

  if($ck>0)
  {
    $ipns=$tblPaypal->find($filter);

    foreach($ipns as $rec)
    {
      $ch=curl_init();

      $data=array();
      $data['cmd']="_notify-validate";
      foreach ($rec['payload'] as $tag=>$val) $data[$tag]=$val;

      $data_string=http_build_query($data);
    
      curl_setopt($ch,CURLOPT_URL, "https://ipnpb.paypal.com/cgi-bin/webscr");
      curl_setopt($ch,CURLOPT_POST, true);
      curl_setopt($ch,CURLOPT_POSTFIELDS, $data_string);
      curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);

      $result=curl_exec($ch);

      if(strlen($result)>0)
      {
        $myid="".$rec['_id'];
        $filter=["_id"=>new MongoDB\BSON\ObjectID($myid)];
        $tblPaypal->updateOne($filter,['$set'=>["validation-result"=>$result]]);
      }
    }
  }

  $filter=["payload.receiver_email"=>"info@dance4passion.co.uk","validation-result"=>"VERIFIED","processed"=>['$exists'=>false]];
  $ck=$tblPaypal->count($filter);

  if($ck>0)
  {
    $ipns=$tblPaypal->find($filter);

    foreach($ipns as $rec)
    {
      $custom=$rec['payload']['custom'];

      $dtls=explode("|",$custom,4);

      if(sizeof($dtls)==4)
      {
        $userId=$dtls[0];
        $courseId=$dtls[1];
        $videoId=$dtls[2];
        $option=$dtls[3];
       
        $videoRec=array();

        $videoRec['courseId']=$courseId;
        $videoRec['videoId']=$videoId;
        $videoRec['option']=$option;
        $videoRec['txn_id']=$rec['payload']['txn_id'];
 
        $filter2=["id"=>$userId];
        $ck=$tblUser->count($filter2);

        if($ck==1)
        {
          $tblUser->updateOne($filter2,['$set'=>["videos.".$videoId=>$videoRec]]);
          $myid="".$rec['_id'];
          $filter3=["_id"=>new MongoDB\BSON\ObjectID($myid)];
          $tblPaypal->updateOne($filter3,['$set'=>["processed"=>"y"]]);
        }
        else
        {
          $myid="".$rec['_id'];
          $filter3=["_id"=>new MongoDB\BSON\ObjectID($myid)];
          $tblPaypal->updateOne($filter3,['$set'=>["processed"=>"n"]]);
        }
      }
      else
      {
        $myid="".$rec['_id'];
        $filter3=["_id"=>new MongoDB\BSON\ObjectID($myid)];
        $tblPaypal->updateOne($filter3,['$set'=>["processed"=>"n"]]);
      }
    }
  }
} 

function thankyou()
{
  echo "<p>Thanks for your purchase. Your videos will be available shortly.</p>";

  echo "<p><a class=\"button\" style=\"width: 300px; text-align:center; background-color: #CCCCC;\" href=\"online.php\">Click here to <br />see our videos</a></p>";

  echo "<p><a class=\"button\" style=\"width: 300px; text-align:center; background-color: #CCCCC;\" href=\"profile.php\">Click here to <br />update your profile</a></p>";
}

?>

