Exemplo n.º 1
0
 /**
  * Create Snap payment page
  *
  * Example:
  *
  * ```php
  *   $params = array(
  *     'transaction_details' => array(
  *       'order_id' => rand(),
  *       'gross_amount' => 10000,
  *     )
  *   );
  *   $paymentUrl = Veritrans_Snap::getSnapToken($params);
  * ```
  *
  * @param array $params Payment options
  * @return string Snap token.
  * @throws Exception curl error or veritrans error
  */
 public static function getSnapToken($params)
 {
     $payloads = array('credit_card' => array('secure' => Veritrans_Config::$is3ds));
     if (array_key_exists('item_details', $params)) {
         $gross_amount = 0;
         foreach ($params['item_details'] as $item) {
             $gross_amount += $item['quantity'] * $item['price'];
         }
         $params['transaction_details']['gross_amount'] = $gross_amount;
     }
     if (Veritrans_Config::$isSanitized) {
         Veritrans_Sanitizer::jsonRequest($params);
     }
     $params = array_replace_recursive($payloads, $params);
     $result = Veritrans_SnapApiRequestor::post(Veritrans_Config::getSnapBaseUrl() . '/charge', Veritrans_Config::$serverKey, $params);
     return $result->token_id;
 }