Advertisement
Guest User

Untitled

a guest
Oct 15th, 2018
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.58 KB | None | 0 0
  1. <?php
  2. require __DIR__ . '/../bootstrap/autoload.php';
  3. $app = require_once __DIR__ . '/../bootstrap/app.php';
  4.  
  5.  
  6. $host = "https://api.avangate.com";
  7. $client = new SoapClient($host . "/soap/5.0/?wsdl", array(
  8.     'location' => $host . "/soap/5.0/",
  9.     "stream_context" => stream_context_create(array(
  10.         'ssl' => array(
  11.             'verify_peer' => false,
  12.             'verify_peer_name' => false
  13.         )
  14.     ))
  15. ));
  16.  
  17.  
  18. function hmac($key, $data)
  19. {
  20.     $b = 64; // byte length for md5
  21.     if (strlen($key) > $b) {
  22.         $key = pack("H*", md5($key));
  23.     }
  24.  
  25.     $key = str_pad($key, $b, chr(0x00));
  26.     $ipad = str_pad('', $b, chr(0x36));
  27.     $opad = str_pad('', $b, chr(0x5c));
  28.     $k_ipad = $key ^ $ipad;
  29.     $k_opad = $key ^ $opad;
  30.     return md5($k_opad . pack("H*", md5($k_ipad . $data)));
  31. }
  32.  
  33. $merchantCode = "MODULESG";
  34. $key = "J?[NPnEf#OKSIeXvgDz2";
  35.  
  36. $now = gmdate('Y-m-d H:i:s'); //GMT date format)
  37.  
  38. $string = strlen($merchantCode) . $merchantCode . strlen($now) . $now;
  39. $hash = hmac($key, $string);
  40.  
  41. try {
  42.     $sessionID = $client->login($merchantCode, $now, $hash);
  43. } catch (\SoapFault $e) {
  44.     echo "Authentication: " . $e->getMessage();
  45.     exit;
  46. }
  47.  
  48. $Order = new stdClass();
  49. $Order->Currency = "USD";
  50. $Order->Language = "EN";
  51. $Order->Country = "US";
  52. $Order->CustomerIP = '91.220.121.21';//"10.10.13.37";
  53. $Order->Source = "sourceAPI.net";
  54. $Order->LocalTime = date('Y-m-d H:i:s');
  55. $Order->CustomerReference = 421820775;
  56. $Order->Items = array();
  57.  
  58.  
  59. /**
  60.  * 1st Product
  61.  */
  62. $Order->Items[0] = new stdClass();
  63. $Order->Items[0]->Code = null;
  64. $Order->Items[0]->Quantity = 1;
  65. $Order->Items[0]->PurchaseType = 'PRODUCT';
  66. $Order->Items[0]->Tangible = false; // physical
  67. $Order->Items[0]->IsDynamic = true;
  68.  
  69. $Order->Items[0]->Price = new stdClass();
  70. $Order->Items[0]->Price->Amount = 100;
  71. $Order->Items[0]->Price->Type = 'CUSTOM';
  72.  
  73. $Order->Items[0]->Name = 'Dynamic Product 1 ' . date("Y-m-d H:i:s");
  74. $Order->Items[0]->Description = 'Description Produs OTF';
  75.  
  76.  
  77.  
  78. $Order->MachineId = 'machineIdTestDan';
  79. $Order->Discount = null;
  80. $Order->ExternalReference = null;
  81.  
  82. $Order->BillingDetails = new stdClass();
  83. $Order->BillingDetails->Address1 = 'API BILL';
  84. $Order->BillingDetails->Address2 = 'API BILL2';
  85. $Order->BillingDetails->City = 'London';
  86. $Order->BillingDetails->State = 'Greater London';
  87. $Order->BillingDetails->CountryCode = 'UK';
  88. $Order->BillingDetails->Phone = 12345;
  89. $Order->BillingDetails->Email = 'shopper@2checkout.com';
  90. $Order->BillingDetails->FirstName = 'First Name Bil';
  91. $Order->BillingDetails->LastName = 'Last Name Bil';
  92. $Order->BillingDetails->Company = 'Api Company';
  93. $Order->BillingDetails->Zip = '12345';
  94. $Order->BillingDetails->FiscalCode = 13205628845;
  95.  
  96. /**/
  97. $Order->DeliveryDetails = new stdClass();
  98. $Order->DeliveryDetails->Address1 = 'Api Del';
  99. $Order->DeliveryDetails->Address2 = 'Api Del2';
  100. $Order->DeliveryDetails->City = 'Api City Del';
  101. $Order->DeliveryDetails->State = 'Paris';
  102. $Order->DeliveryDetails->CountryCode = 'US';
  103. $Order->DeliveryDetails->Phone = '12345';
  104. $Order->DeliveryDetails->Email = 'deli@email.com';
  105. $Order->DeliveryDetails->FirstName = 'Api First Name Del';
  106. $Order->DeliveryDetails->LastName = 'Api Last Name Del';
  107. $Order->DeliveryDetails->Zip = 12345;
  108.  
  109.  
  110. $Order->PaymentDetails = new stdClass();
  111. $Order->PaymentDetails->Type = "CC";
  112.  
  113. $Order->PaymentDetails->Currency = "USD";
  114. $Order->PaymentDetails->CustomerIP = '91.220.121.21';//"10.10.13.37";
  115. $Order->PaymentDetails->PaymentMethod = new stdClass();
  116.  
  117.  
  118. /**/
  119. $Order->PaymentDetails->PaymentMethod->CardNumber = "4111111111111111";//4222222222222 //4111111111111111 //4984123412341234 - Installments
  120. $Order->PaymentDetails->PaymentMethod->CardType = "VISA";/**/
  121.  
  122. /**/
  123. $Order->PaymentDetails->PaymentMethod->ExpirationYear = "2020";
  124. $Order->PaymentDetails->PaymentMethod->ExpirationMonth = "12";
  125. $Order->PaymentDetails->PaymentMethod->CCID = "123";
  126. $Order->PaymentDetails->PaymentMethod->HolderName = "John Doe";
  127. $Order->PaymentDetails->PaymentMethod->RecurringEnabled = true;
  128. $Order->PaymentDetails->PaymentMethod->CardNumberTime = 83.21; // can be null - high value in seconds is a red flag for fraud attempts.
  129. $Order->PaymentDetails->PaymentMethod->HolderNameTime = 13.35; // can be null - high value in seconds is a red flag for fraud attempts.
  130. $Order->PaymentDetails->PaymentMethod->Vendor3DSReturnURL = "http://www.success.ro";
  131. $Order->PaymentDetails->PaymentMethod->Vendor3DSCancelURL = "http://www.error.ro";
  132.  
  133. try {
  134.     $newOrder = $client->placeOrder($sessionID, $Order);
  135. } catch (\Exception $e) {
  136.     vdump($e);
  137.     exit;
  138. }
  139.  
  140. vdump($newOrder);
  141. exit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement