PageRenderTime 24ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/members/paypal_ipn.php

https://gitlab.com/zohaibsaleem/shipcliq
PHP | 104 lines | 82 code | 16 blank | 6 comment | 10 complexity | 19efc071e91e42de2d4ec804a40072b3 MD5 | raw file
  1. <?php
  2. // Send an empty HTTP 200 OK response to acknowledge receipt of the notification
  3. header('HTTP/1.1 200 OK');
  4. // Assign payment notification values to local variables
  5. $item_name = $_POST['item_name'];
  6. $item_number = $_POST['item_number'];
  7. $payment_status = $_POST['payment_status'];
  8. $payment_amount = $_POST['mc_gross'];
  9. $payment_currency = $_POST['mc_currency'];
  10. $txn_id = $_POST['txn_id'];
  11. $receiver_email = $_POST['receiver_email'];
  12. $payer_email = $_POST['payer_email'];
  13. $custom = $_POST['custom'];
  14. // Build the required acknowledgement message out of the notification just received
  15. $req = 'cmd=_notify-validate'; // Add 'cmd=_notify-validate' to beginning of the acknowledgement
  16. foreach ($_POST as $key => $value) { // Loop through the notification NV pairs
  17. $value = urlencode(stripslashes($value)); // Encode these values
  18. $req .= "&$key=$value"; // Add the NV pairs to the acknowledgement
  19. }
  20. // Set up the acknowledgement request headers
  21. $header = "POST /cgi-bin/webscr HTTP/1.1\r\n"; // HTTP POST request
  22. $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
  23. $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
  24. // Open a socket for the acknowledgement request
  25. $fp = fsockopen('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
  26. // Send the HTTP POST request back to PayPal for validation
  27. fputs($fp, $header . $req);
  28. while (!feof($fp)) { // While not EOF
  29. $res = fgets($fp, 1024); // Get the acknowledgement response
  30. if (strcmp ($res, "VERIFIED") == 0) { // Response contains VERIFIED - process notification
  31. if($payment_status == "Completed" || $payment_status == "Pending"){
  32. $sql = "SELECT * FROM temp_booking WHERE iBookingId = '".$custom."'";
  33. $db_booking = $obj->MySQLSelect($sql);
  34. $Data['vBookingNo'] = $db_booking[0]['vBookingNo'];
  35. $Data['iRideId'] = $db_booking[0]['iRideId'];
  36. $Data['iRidePointId'] = $db_booking[0]['iRidePointId'];
  37. $Data['vFromPlace'] = $db_booking[0]['vFromPlace'];
  38. $Data['vToPlace'] = $db_booking[0]['vToPlace'];
  39. $Data['vMainRidePlaceDetails'] = $db_booking[0]['vMainRidePlaceDetails'];
  40. $Data['iNoOfSeats'] = $db_booking[0]['iNoOfSeats'];
  41. $Data['fAmount'] = $db_booking[0]['fAmount'];
  42. $Data['dBookingDate'] = $db_booking[0]['dBookingDate'];
  43. $Data['dBookingTime'] = $db_booking[0]['dBookingTime'];
  44. $Data['iBookerId'] = $db_booking[0]['iBookerId'];
  45. $Data['iDriverId'] = $db_booking[0]['iDriverId'];
  46. $Data['vBookerFirstName'] = $db_booking[0]['vBookerFirstName'];
  47. $Data['vBookerLastName'] = $db_booking[0]['vBookerLastName'];
  48. $Data['vBookerAddress'] = $db_booking[0]['vBookerAddress'];
  49. $Data['vBookerCity'] = $db_booking[0]['vBookerCity'];
  50. $Data['vBookerState'] = $db_booking[0]['vBookerState'];
  51. $Data['vBookerCountry'] = $db_booking[0]['vBookerCountry'];
  52. $Data['vBookerZip'] = $db_booking[0]['vBookerZip'];
  53. $Data['vBookerPhone'] = $db_booking[0]['vBookerPhone'];
  54. $Data['vBookerEmail'] = $db_booking[0]['vBookerEmail'];
  55. $Data['vDriverFirstName'] = $db_booking[0]['vDriverFirstName'];
  56. $Data['vDriverLastName'] = $db_booking[0]['vDriverLastName'];
  57. $Data['vDriverPhone'] = $db_booking[0]['vDriverPhone'];
  58. $Data['vDriverEmail'] = $db_booking[0]['vDriverEmail'];
  59. $Data['vBookerCurrencyCode'] = $db_booking[0]['vBookerCurrencyCode'];
  60. $Data['vTransactionId'] = $db_booking[0]['vTransactionId'];
  61. $Data['eBookerPaymentPaid'] = $db_booking[0]['eBookerPaymentPaid'];
  62. $Data['eDriverPaymentPaid'] = $db_booking[0]['eDriverPaymentPaid'];
  63. $Data['eBookerConfirmation'] = $db_booking[0]['eBookerConfirmation'];
  64. $Data['ePaymentType'] = $db_booking[0]['ePaymentType'];
  65. $Data['eTripReturn'] = $db_booking[0]['eTripReturn'];
  66. $Data['dPaymentDate'] = $db_booking[0]['dPaymentDate'];
  67. $Data['eStatus'] = $db_booking[0]['eStatus'];
  68. $Data['fDocumentPrice'] = $db_booking[0]['fDocumentPrice'];
  69. $Data['fBoxPrice'] = $db_booking[0]['fBoxPrice'];
  70. $Data['fLuggagePrice'] = $db_booking[0]['fLuggagePrice'];
  71. $id = $obj->MySQLQueryPerform("booking_new",$Data,'insert');
  72. if($id){
  73. $mailcont = $ridesobj->email_cont($Data);
  74. $maildata['vBookerEmail'] = $Data['vBookerEmail'];
  75. $maildata['vDriverEmail'] = $Data['vDriverEmail'];
  76. $maildata['details'] = $mailcont;
  77. $generalobj->send_email_user("BOOKING_PASSENGER",$maildata);
  78. $generalobj->send_email_user("BOOKING_DRIVER",$maildata);
  79. $generalobj->send_email_user("BOOKING_ADMIN",$maildata);
  80. }
  81. }else{
  82. }
  83. }else if (strcmp ($res, "INVALID") == 0) {
  84. }
  85. }
  86. fclose($fp); // Close the file
  87. exit;
  88. ?>