public function getStripToken() { $form_state = $this->getFormState(); $strip_token = Utils::getStripeToken($form_state['values'])->verify($this); return $strip_token; }
/** * This is helper function called inside createProgrammatically used for order payment transaction * @param $order * This is order object */ private function paymentTransaction($order) { $transaction = commerce_payment_transaction_new('commerce_stripe', $order->order_id); $payment_method = commerce_payment_method_instance_load('commerce_stripe|commerce_payment_commerce_stripe'); $strip_token = Utils::getStripeToken()->verify(get_class()); $charge = $order->commerce_order_total['und'][0]; if (!commerce_stripe_load_library()) { drupal_set_message(t('Error capturing payment. Please contact shop admin to proceed.'), 'error'); } $c = array('amount' => $charge['amount'], 'currency' => $charge['currency_code'], 'card' => $strip_token, 'capture' => TRUE, 'description' => t('Order Number: @order_number', array('@order_number' => $order->order_number))); \Stripe::setApiKey($payment_method['settings']['secret_key']); try { if ($charge['amount'] > 0) { $response = \Stripe_Charge::create($c); $transaction->remote_id = $response->id; $transaction->payload[REQUEST_TIME] = $response->__toJSON(); $transaction->remote_status = 'AUTH_CAPTURE'; $transaction->message = t('Payment authorized only successfully.'); $transaction->message .= '<br />' . t('Captured: @date', array('@date' => format_date(REQUEST_TIME, 'short'))); $transaction->message .= '<br />' . t('Captured Amount: @amount', array('@amount' => $charge['amount'] / 100)); $transaction->status = COMMERCE_PAYMENT_STATUS_SUCCESS; $transaction->amount = $charge['amount']; $transaction->currency_code = $charge['currency_code']; sleep(5); commerce_payment_transaction_save($transaction); commerce_payment_commerce_payment_transaction_insert($transaction); } } catch (Exception $e) { drupal_set_message(t('We received the following error when trying to capture the transaction.'), 'error'); drupal_set_message(check_plain($e->getMessage()), 'error'); $transaction->payload[REQUEST_TIME] = $e->json_body; $transaction->message = t('Capture processing error: @stripe_error', array('@stripe_error' => $e->getMessage())); $transaction->status = COMMERCE_PAYMENT_STATUS_FAILURE; $transaction->remote_status = 'FAILED'; commerce_payment_transaction_save($transaction); } if ($charge['amount'] == 0) { $user = user_load($order->uid); $transaction->instance_id = $payment_method['instance_id']; $transaction->amount = $charge['amount']; $transaction->currency_code = $charge['currency_code']; $transaction->status = COMMERCE_PAYMENT_STATUS_SUCCESS; $transaction->message = '@name'; $transaction->message_variables = array('@name' => 'Payment authorized only successfully'); commerce_payment_transaction_save($transaction); commerce_payment_commerce_payment_transaction_insert($transaction); } if (module_exists('commerce_cardonfile')) { $strip_token = Utils::getStripeToken()->verify(get_class()); $card = _commerce_stripe_create_card($strip_token, $order->uid, $payment_method); $remote_id = (string) $card->customer . '|' . (string) $card->id; $card_data = commerce_cardonfile_new(); $card_data->uid = $order->uid; $card_data->order_id = $order->order_id; $card_data->payment_method = $payment_method['method_id']; $card_data->instance_id = $payment_method['instance_id']; $card_data->remote_id = $remote_id; $card_data->card_type = 'Visa'; $card_data->card_name = $user->name; $card_data->card_number = '1111'; $card_data->card_exp_month = 5; $card_data->card_exp_year = 2018; $card_data->status = 1; $card_data->instance_default = 1; commerce_cardonfile_save($card_data); } }