Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * @file
- * Credit card payment
- */
- /**
- * Implements hook_commerce_payment_method_info().
- */
- function commerce_payment_credit_card_commerce_payment_method_info() {
- $payment_methods = array();
- $payment_methods['commerce_payment_credit_card'] = array(
- 'title' => t('Credit Card'),
- 'description' => t('Credit card payment type'),
- 'active' => TRUE,
- );
- return $payment_methods;
- }
- /**
- * Payment method callback: submit form.
- */
- function commerce_payment_credit_card_submit_form($payment_method, $pane_values, $checkout_pane, $order) {
- $form = array();
- // Merge in values from the order.
- if (!empty($order->data['commerce_payment_credit_card'])) {
- $pane_values += $order->data['commerce_payment_credit_card'];
- }
- // Merge in default values.
- $pane_values += array(
- 'credit_card' => '',
- );
- $form['card_on_file'] = array(
- '#type' => 'entityreference',
- '#title' => t('Credit Card'),
- '#era_entity_type' => 'node', // Mandatory.
- '#era_bundles' => array(credit_card), // Optional (Any bundle by default).
- '#era_cardinality' => 5, // Optional (1 By default).
- '#required' => TRUE,
- );
- return $form;
- }
- /**
- * Payment method callback: submit form submission.
- */
- function commerce_payment_credit_card_submit_form_submit($payment_method, $pane_form, $pane_values, $order, $charge) {
- $order->data['commerce_payment_credit_card'] = $pane_values;
- commerce_payment_credit_card_transaction($payment_method, $order, $charge, $pane_values['card_on_file']);
- }
- /**
- * Creates an example payment transaction for the specified charge amount.
- *
- * @param $payment_method
- * The payment method instance object used to charge this payment.
- * @param $order
- * The order object the payment applies to.
- * @param $charge
- * An array indicating the amount and currency code to charge.
- * @param $card_on_file
- * The card entered on the submission form.
- */
- function commerce_payment_credit_card_transaction($payment_method, $order, $charge, $card_on_file) {
- $transaction = commerce_payment_transaction_new('commerce_payment_credit_card', $order->order_id);
- $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 = t('@card_on_file');
- $transaction->message_variables = array('@card_on_file' => $card_on_file);
- commerce_payment_transaction_save($transaction);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement