PageRenderTime 70ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/ajax/ajaxPaypalPayment.php

https://gitlab.com/wi14b022/fiteoReloaded
PHP | 156 lines | 123 code | 26 blank | 7 comment | 17 complexity | 7563a5ec6f9dcb3bfbf95248240d15d6 MD5 | raw file
  1. <?php
  2. require_once('../classes/DB.php');
  3. require_once('../classes/Customer.php');
  4. require_once('../classes/FitpointPackage.php');
  5. require_once('../functions/generalFunctions.php');
  6. session_start();
  7. $db=new DB();
  8. $db->setConnection();
  9. set_time_limit (1200);
  10. $time_start = microtime(true);
  11. $error="";
  12. if ($_POST)
  13. {
  14. if (!isset($_POST['package'])){
  15. $error.="CreditCard Type is missing<br />";
  16. }
  17. else {
  18. $fitpointPackage=$db->getFitpointsPackage($_POST['package']);
  19. }
  20. if (!isset($_POST['firstname'])){
  21. $error.= "Firstname is missing";
  22. }
  23. if (!isset($_POST['lastname'])){
  24. $error.= "Lastname is missing";
  25. }
  26. if (!isset($_POST['creditcardtype'])){
  27. $error.= "CreditCard type is missing";
  28. }
  29. if (!isset($_POST['ccNumber'])){
  30. $error.= "CreditCard number is missing";
  31. }
  32. if (!isset($_POST['month'])){
  33. $error.= "CreditCard month is missing";
  34. }
  35. if (!isset($_POST['year'])){
  36. $error.= "CreditCard year is missing";
  37. }
  38. if (!isset($_POST['cvv'])){
  39. $error.= "CreditCard cvv is missing";
  40. }
  41. }
  42. require_once('../pp-sdk/vendor/autoload.php');
  43. require_once('../pp-sdk/lib/PayPal/Rest/ApiContext.php');
  44. require_once('../pp-sdk/lib/PayPal/Api/Address.php');
  45. require_once('../pp-sdk/lib/PayPal/Api/CreditCard.php');
  46. require_once('../pp-sdk/lib/PayPal/Api/FundingInstrument.php');
  47. require_once('../pp-sdk/lib/PayPal/Api/Payer.php');
  48. require_once('../pp-sdk/lib/PayPal/Api/Amount.php');
  49. require_once('../pp-sdk/lib/PayPal/Api/Transaction.php');
  50. require_once('../pp-sdk/lib/PayPal/Api/Payment.php');
  51. use PayPal\Rest\ApiContext;
  52. use PayPal\Api\Address;
  53. use PayPal\Api\CreditCard;
  54. use PayPal\Api\Amount;
  55. use PayPal\Api\FundingInstrument;
  56. use PayPal\Api\Payer;
  57. use PayPal\Api\Transaction;
  58. use PayPal\Api\Payment;
  59. use PayPal\Auth\OAuthTokenCredential;
  60. $apiContext = new ApiContext(new OAuthTokenCredential(
  61. "Acuz_NNQp6lq9BVV9Eye_HoBBKqxkBMqJ_2qSfUMxpw3CAHiOBB6grMGjLtJ0yPsSuapE46i4_r55fWT", "EFjcvx-Jn5NkUOmQmvk17Okt-NwAPXxe9zkc8V0fl4GJRkZL1kzlbGYe0vIlpRWMuJfo7yL55DmzrepT"));
  62. if (empty($error)){
  63. $addr = new Address();
  64. $addr->setLine1('Rennweg 97');
  65. $addr->setCity('Vienna');
  66. $addr->setCountryCode('AT');
  67. $addr->setPostalCode('1030');
  68. $card = new CreditCard();
  69. $card->setNumber($_POST['ccNumber']);
  70. $card->setType($_POST['creditcardtype']);
  71. $card->setExpireMonth($_POST['month']);
  72. $card->setExpireYear($_POST['year']);
  73. $card->setCvv2($_POST['cvv']);
  74. $card->setFirstName($_POST['firstname']);
  75. $card->setLastName($_POST['lastname']);
  76. $card->setBillingAddress($addr);
  77. $fi = new FundingInstrument();
  78. $fi->setCreditCard($card);
  79. $payer = new Payer();
  80. $payer->setPaymentMethod('credit_card');
  81. $payer->setFundingInstruments(array($fi));
  82. $amount = new Amount();
  83. $amount->setCurrency('EUR');
  84. $amount->setTotal($fitpointPackage->getPrice());
  85. //$amount->setDetails($amountDetails);
  86. $transaction = new Transaction();
  87. $transaction->setAmount($amount);
  88. $transaction->setDescription('This is the payment transaction description.');
  89. $payment = new Payment();
  90. $payment->setIntent('sale');
  91. $payment->setPayer($payer);
  92. $payment->setTransactions(array($transaction));
  93. try {
  94. $payment->create($apiContext);
  95. } catch (PayPal\Exception\PayPalConnectionException $ex) {
  96. //echo $ex->getCode(); // Prints the Error Code
  97. //echo $ex->getData(); // Prints the detailed error message
  98. $json = $ex->getData();
  99. $obj = json_decode($json);
  100. //print $obj->{'foo-bar'}; // 12345
  101. //var_dump($obj->{'details'}[0]);
  102. if (isset($obj->{'details'})){
  103. foreach ($obj->{'details'} as $detail){
  104. $det=preg_split("/\./", $detail->{'field'});
  105. if (isset($det[2])) $error.=ucfirst($det[2]).' ';
  106. if (isset($det[3])) $error.=ucfirst($det[3]).' - ';
  107. if (isset($detail->{'issue'})) $error.=$detail->{'issue'};
  108. echo $error.'<br>';
  109. $error='';
  110. }
  111. }
  112. $file = 'people.txt';
  113. file_put_contents($file, $ex->getData().PHP_EOL, FILE_APPEND);
  114. //die($ex);
  115. } catch (Exception $ex) {
  116. //die($ex);
  117. }
  118. $time_end = microtime(true);
  119. $execution_time = ($time_end - $time_start)/60;
  120. echo $payment->getState();
  121. if (trim($payment->getState())=="approved"){
  122. $db->insertPackage($_SESSION['currentUser'], $fitpointPackage);
  123. $_SESSION['currentUser']->setFitpoints($_SESSION['currentUser']->getFitpoints()+$fitpointPackage->getFitpoints());
  124. }
  125. $file = 'paypalMonitoring.txt';
  126. file_put_contents($file, $payment->getState().' ', FILE_APPEND);
  127. file_put_contents($file, $execution_time.PHP_EOL, FILE_APPEND);
  128. }
  129. else echo $error;
  130. ?>