/** * Process the purchase data and send to Payeezy * * @since 1.0 * @return void */ public function process_payment($purchase_data) { global $edd_options; $url = edd_is_test_mode() ? 'https://api-cert.payeezy.com/v1/transactions' : 'https://api.payeezy.com/v1/transactions'; $payeezy = new Payeezy(); $payeezy::setApiKey(edd_get_option('payeezy_api_key')); $payeezy::setApiSecret(edd_get_option('payeezy_api_secret')); $payeezy::setMerchantToken(edd_get_option('payeezy_token')); $payeezy::setUrl($url); $month = $purchase_data['card_info']['card_exp_month']; $month = $month > 9 ? $month : '0' . $month; // Payeezy requires two digits $year = substr($purchase_data['card_info']['card_exp_year'], -2); $card_type = edd_detect_cc_type($purchase_data['card_info']['card_number']); switch ($card_type) { case 'amex': $card_type = 'American Express'; break; } $response = json_decode($payeezy->purchase(array('amount' => $purchase_data['price'], 'card_number' => $purchase_data['card_info']['card_number'], 'card_type' => $card_type, 'card_holder_name' => $purchase_data['card_info']['card_name'], 'card_cvv' => $purchase_data['card_info']['card_cvc'], 'card_expiry' => $month . $year, 'currency_code' => 'USD'))); if ('failed' === $response->validation_status) { foreach ($response->Error->messages as $error) { edd_set_error($error->code, $error->description); } edd_send_back_to_checkout('?payment-mode=payeezy'); } elseif ('success' === $response->validation_status) { if ('approved' === $response->transaction_status) { $payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['post_data']['edd_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_currency(), 'downloads' => $purchase_data['downloads'], 'cart_details' => $purchase_data['cart_details'], 'user_info' => $purchase_data['user_info'], 'status' => 'pending'); // record the pending payment $payment_id = edd_insert_payment($payment_data); edd_update_payment_status($payment_id, 'publish'); edd_set_payment_transaction_id($payment_id, $response->transaction_id); // Empty the shopping cart edd_empty_cart(); edd_send_to_success_page(); } else { edd_set_error('payeezy_error', sprintf(__('Transaction not approved. Status: %s', 'edd-payeezy'), $response->transaction_status)); edd_send_back_to_checkout('?payment-mode=payeezy'); } } }
echo "<br><br> "; echo "<div class='datagrid1'>"; echo "<table><thead><tr><th>authorize-capture Credit card </th></thead></tr>"; echo "<tbody><tr><td>capture Request: "; $secondaryTxResponse_JSON = $payeezy->capture(setSecondaryTxPayload($authr->transaction_id, $authr->transaction_tag, $authr->amount)); echo "</td></tr>"; echo "<tr class='alt'><td>authorize-capture Response :"; echo $secondaryTxResponse_JSON; echo "</td></tr><tbody></table>"; echo "</div>"; echo "<br><br> "; echo "<h1> Purchase-void Transactions </h1>"; echo "<div class='datagrid2'>"; echo "<table><thead><tr><th>Purchase credit card transaction ' </th></tr></thead>"; echo "<tbody><tr><td>Request for Purchase: "; $purchaseresponse = $payeezy->purchase(setPrimaryTxPayload()); echo "</td></tr>"; echo "<tr class='alt'><td>Purchase Response :"; echo $purchaseresponse; echo "</td></tr></tbody> </table>"; echo "</div>"; echo "<br><br> "; echo "<div class='datagrid2'>"; echo "<table><thead><tr><th> transaction_id and transaction_tag from previous transaction</th></tr></thead><tbody><tr><td> "; $purchasetr = json_decode($purchaseresponse); echo "transaction_id: " . $purchasetr->transaction_id; echo "<br>"; echo "transaction_tag: " . $purchasetr->transaction_tag; echo "</td></tr></tbody> </table>"; echo "</div>"; echo "<br><br> ";