本文整理汇总了PHP中edd_insert_payment函数的典型用法代码示例。如果您正苦于以下问题:PHP edd_insert_payment函数的具体用法?PHP edd_insert_payment怎么用?PHP edd_insert_payment使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了edd_insert_payment函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: edd_manual_payment
/**
* Manual Payment
*
* @access private
* @since 1.0
* @return void
*/
function edd_manual_payment($purchase_data)
{
global $edd_options;
/*
* purchase data comes in like this
*
$purchase_data = array(
'downloads' => array of download IDs,
'price' => total price of cart contents,
'purchase_key' => // random key
'user_email' => $user_email,
'date' => date('Y-m-d H:i:s'),
'user_id' => $user_id,
'post_data' => $_POST,
'user_info' => array of user's information and used discount code
'cart_details' => array of cart details,
);
*/
$payment = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => $edd_options['currency'], 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// record the pending payment
$payment = edd_insert_payment($payment);
if ($payment) {
edd_update_payment_status($payment, 'publish');
// empty the shopping cart
edd_empty_cart();
edd_send_to_success_page();
} else {
// if errors are present, send the user back to the purchase page so they can be corrected
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
示例2: edds_process_payza_payment
/**
* Process the payment through Payza
*
* @param array $purchase_data
*/
function edds_process_payza_payment($purchase_data)
{
global $edd_options;
// record the pending payment
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_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');
// Inserts a new payment
$payment = edd_insert_payment($payment_data);
if ($payment) {
require_once 'payza.gateway.php';
// Request details
$merchant_id = trim($edd_options['payza_merchant_id']);
$currency = edd_get_currency();
$return_url = edd_get_success_page_url('?payment-confirmation=payza');
$cancel_url = edd_get_failed_transaction_uri();
$ipn_url = trailingslashit(home_url()) . '?edd-listener=PAYZA_IPN';
// Create a new instance of the mb class
$payza = new wp_payza_gateway($merchant_id, 'item', $currency, $return_url, $cancel_url, $ipn_url, edd_is_test_mode());
// Get a new session ID
$redirect_url = $payza->transaction($payment, $purchase_data['cart_details']);
if ($redirect_url) {
// Redirects the user
wp_redirect($redirect_url);
exit;
} else {
edd_send_back_to_checkout('?payment-mode=payza');
}
} else {
edd_send_back_to_checkout('?payment-mode=payza');
}
}
示例3: gateway_function_to_process_payment
function gateway_function_to_process_payment($purchase_data)
{
// payment processing happens here
// if (edd_is_test_mode()) {
//
// } else {
//
// }
$purchase_summary = edd_get_purchase_summary($purchase_data);
// var_dump($purchase_data);
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_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');
// echo $purchase_data['purchase_key'];
// Record the pending payment
$payment = edd_insert_payment($payment_data);
// Setup Yandex.Kassa arguments
$yandex_args = array('ShopID' => edd_get_option('ya_shop_id', false), 'scid' => edd_get_option('ya_scid', false), 'cps_email' => $purchase_data['user_email'], 'Sum' => $purchase_data['price'], 'orderNumber' => $purchase_data['purchase_key'], 'orderDetails' => $purchase_data['cart_details'], 'CustName' => $purchase_data['user_info']['first_name'], 'paymentType' => 'AC');
// Build query
$yandex_redirect = 'https://money.yandex.ru/eshop.xml?';
$yandex_redirect .= http_build_query($yandex_args);
// Redirect
// wp_redirect( $yandex_redirect );
// if the merchant payment is complete, set a flag
$merchant_payment_confirmed = false;
if ($merchant_payment_confirmed) {
// this is used when processing credit cards on site
// once a transaction is successful, set the purchase to complete
edd_update_payment_status($payment, 'complete');
// go to the success page
edd_send_to_success_page();
} else {
$fail = true;
// payment wasn't recorded
}
}
示例4: edd_process_paymentwall_purchase
function edd_process_paymentwall_purchase($purchase_data)
{
global $edd_options;
// Collect payment data
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_currency(), 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'gateway' => 'paymentwall', 'status' => 'pending');
// Record the pending payment
$payment = edd_insert_payment($payment_data);
// Check payment
if (!$payment) {
// Record the error
edd_record_gateway_error(__('Payment Error', 'edd'), sprintf(__('Payment creation failed before sending buyer to Paymentwall. Payment data: %s', 'edd'), json_encode($payment_data)), $payment);
// Problems? send back
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
edd_initialize_paymentwall_lib();
$widget = new Paymentwall_Widget($purchase_data['user_email'], $edd_options['paymentwall_widget_code'], array(new Paymentwall_Product($payment, $purchase_data['price'], edd_get_currency(), stripslashes(html_entity_decode(wp_strip_all_tags(edd_get_purchase_summary($purchase_data, false)), ENT_COMPAT, 'UTF-8')))), array('success_url' => add_query_arg('payment-confirmation', 'paymentwall', get_permalink($edd_options['success_page'])), 'email' => $purchase_data['user_email'], 'sign_version' => Paymentwall_Signature_Abstract::VERSION_THREE, 'integration_module' => 'easy_digital_downloads'));
// Get rid of cart contents
edd_empty_cart();
if (!empty($edd_options['paymentwall_widget_mode']) && $edd_options['paymentwall_widget_mode'] == 'iframe') {
echo $htmlCode = $widget->getHtmlCode(array('width' => '100%', 'allowtransparency' => 'true'));
} else {
wp_redirect($widget->getUrl());
}
exit;
}
}
示例5: edd_manual_payment
/**
* Processes the purchase data and uses the Manual Payment gateway to record
* the transaction in the Purchase History
*
* @since 1.0
* @param array $purchase_data Purchase Data
* @return void
*/
function edd_manual_payment($purchase_data)
{
if (!wp_verify_nonce($purchase_data['gateway_nonce'], 'edd-gateway')) {
wp_die(__('Nonce verification has failed', 'edd'), __('Error', 'edd'), array('response' => 403));
}
/*
* Purchase data comes in like this
*
$purchase_data = array(
'downloads' => array of download IDs,
'price' => total price of cart contents,
'purchase_key' => // Random key
'user_email' => $user_email,
'date' => date('Y-m-d H:i:s'),
'user_id' => $user_id,
'post_data' => $_POST,
'user_info' => array of user's information and used discount code
'cart_details' => array of cart details,
);
*/
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_currency(), 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// Record the pending payment
$payment = edd_insert_payment($payment_data);
if ($payment) {
edd_update_payment_status($payment, 'publish');
// Empty the shopping cart
edd_empty_cart();
edd_send_to_success_page();
} else {
edd_record_gateway_error(__('Payment Error', 'edd'), sprintf(__('Payment creation failed while processing a manual (free or test) purchase. Payment data: %s', 'edd'), json_encode($payment_data)), $payment);
// If errors are present, send the user back to the purchase page so they can be corrected
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
示例6: edd_process_paypal_purchase
/**
* Process PayPal Purchase
*
* @since 1.0
* @global $edd_options Array of all the EDD Options
* @param array $purchase_data Purchase Data
* @return void
*/
function edd_process_paypal_purchase($purchase_data)
{
global $edd_options;
// Check there is a gateway name
if (!isset($purchase_data['post_data']['edd-gateway'])) {
return;
}
/*
Purchase data comes in like this:
$purchase_data = array(
'downloads' => array of download IDs,
'tax' => taxed amount on shopping cart
'subtotal' => total price before tax
'price' => total price of cart contents after taxes,
'purchase_key' => // Random key
'user_email' => $user_email,
'date' => date( 'Y-m-d H:i:s' ),
'user_id' => $user_id,
'post_data' => $_POST,
'user_info' => array of user's information and used discount code
'cart_details' => array of cart details,
);
*/
// Collect payment data
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_currency(), 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// Record the pending payment
$payment = edd_insert_payment($payment_data);
// Check payment
if (!$payment) {
// Record the error
edd_record_gateway_error(__('Payment Error', 'edd'), sprintf(__('Payment creation failed before sending buyer to PayPal. Payment data: %s', 'edd'), json_encode($payment_data)), $payment);
// Problems? send back
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
// Only send to PayPal if the pending payment is created successfully
$listener_url = trailingslashit(home_url()) . '?edd-listener=IPN';
// Get the success url
$return_url = add_query_arg('payment-confirmation', 'paypal', get_permalink($edd_options['success_page']));
// Get the complete cart cart_summary
$summary = edd_get_purchase_summary($purchase_data, false);
// Get the PayPal redirect uri
$paypal_redirect = trailingslashit(edd_get_paypal_redirect()) . '?';
// Setup PayPal arguments
$paypal_args = array('cmd' => '_xclick', 'amount' => round($purchase_data['price'] - $purchase_data['tax'], 2), 'business' => $edd_options['paypal_email'], 'item_name' => stripslashes_deep(html_entity_decode(wp_strip_all_tags($summary), ENT_COMPAT, 'UTF-8')), 'email' => $purchase_data['user_email'], 'no_shipping' => '1', 'shipping' => '0', 'no_note' => '1', 'currency_code' => edd_get_currency(), 'item_number' => $purchase_data['purchase_key'], 'charset' => get_bloginfo('charset'), 'custom' => $payment, 'rm' => '2', 'return' => $return_url, 'cancel_return' => edd_get_failed_transaction_uri(), 'notify_url' => $listener_url, 'page_style' => edd_get_paypal_page_style());
if (edd_use_taxes()) {
$paypal_args['tax'] = $purchase_data['tax'];
}
$paypal_args = apply_filters('edd_paypal_redirect_args', $paypal_args, $purchase_data);
// Build query
$paypal_redirect .= http_build_query($paypal_args);
// Get rid of cart contents
edd_empty_cart();
// Redirect to PayPal
wp_redirect($paypal_redirect);
exit;
}
}
示例7: edd_process_paypal_purchase
/**
* Process PayPal Purchase
*
* @access private
* @since 1.0
* @return void
*/
function edd_process_paypal_purchase($purchase_data)
{
global $edd_options;
// check there is a gateway name
if (!isset($purchase_data['post_data']['edd-gateway'])) {
return;
}
/*
Purchase data comes in like this:
////////////////////////////////
$purchase_data = array(
'downloads' => array of download IDs,
'price' => total price of cart contents,
'purchase_key' => // random key
'user_email' => $user_email,
'date' => date( 'Y-m-d H:i:s' ),
'user_id' => $user_id,
'post_data' => $_POST,
'user_info' => array of user's information and used discount code
'cart_details' => array of cart details,
);
*/
// collect payment data
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => $edd_options['currency'], 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// record the pending payment
$payment = edd_insert_payment($payment_data);
// check payment
if (!$payment) {
// problems? send back
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
// only send to PayPal if the pending payment is created successfully
$listener_url = trailingslashit(home_url()) . '?edd-listener=IPN';
// get the success url
$return_url = add_query_arg('payment-confirmation', 'paypal', get_permalink($edd_options['success_page']));
// get the complete cart summary
$cart_summary = edd_get_purchase_summary($purchase_data, false);
// get the PayPal redirect uri
$paypal_redirect = trailingslashit(edd_get_paypal_redirect()) . '?';
// setup PayPal arguments
$paypal_args = array('cmd' => '_xclick', 'amount' => $purchase_data['price'], 'business' => $edd_options['paypal_email'], 'item_name' => stripslashes_deep(html_entity_decode($cart_summary, ENT_COMPAT, 'UTF-8')), 'email' => $purchase_data['user_email'], 'no_shipping' => '1', 'shipping' => '0', 'no_note' => '1', 'currency_code' => $edd_options['currency'], 'item_number' => $purchase_data['purchase_key'], 'charset' => get_bloginfo('charset'), 'custom' => $payment, 'rm' => '2', 'return' => $return_url, 'notify_url' => $listener_url);
// build query
$paypal_redirect .= http_build_query(apply_filters('edd_paypal_redirect_args', $paypal_args, $purchase_data));
// get rid of cart contents
edd_empty_cart();
// Redirect to PayPal
wp_redirect($paypal_redirect);
exit;
}
}
示例8: pw_edd_process_payment
function pw_edd_process_payment($purchase_data)
{
global $edd_options;
/**********************************
* set transaction mode
**********************************/
if (edd_is_test_mode()) {
$paytm_redirect = 'https://pguat.paytm.com/oltp-web/processTransaction?';
} else {
if ($edd_options['paytm_select_mode'] == '1') {
$paytm_redirect = 'https://secure.paytm.in/oltp-web/processTransaction?';
} else {
$paytm_redirect = 'https://pguat.paytm.com/oltp-web/processTransaction?';
}
}
// check for any stored errors
$errors = edd_get_errors();
if (!$errors) {
$purchase_summary = edd_get_purchase_summary($purchase_data);
/****************************************
* setup the payment details to be stored
****************************************/
$payment = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => $edd_options['currency'], 'downloads' => $purchase_data['downloads'], 'gateway' => 'paytm', 'cart_details' => $purchase_data['cart_details'], 'user_info' => $purchase_data['user_info'], 'status' => 'pending');
// record the pending payment
$payment = edd_insert_payment($payment);
$merchant_payment_confirmed = false;
$secret_key = $edd_options['paytm_mer_access_key'];
$params = array('REQUEST_TYPE' => 'DEFAULT', 'MID' => $edd_options['paytm_merchant_id'], 'TXN_AMOUNT' => $purchase_data['price'], 'CHANNEL_ID' => "WEB", 'INDUSTRY_TYPE_ID' => $edd_options['paytm_industry_type'], 'WEBSITE' => $edd_options['paytm_website_name'], 'CUST_ID' => $purchase_data['user_email'], 'ORDER_ID' => $purchase_data['purchase_key'], 'EMAIL' => $purchase_data['user_email']);
if ($edd_options['paytm_callback'] == '1') {
$params['CALLBACK_URL'] = get_site_url() . '/?edd-listener=PAYTM_IPN&payment_id=' . $payment;
}
$checksum = getChecksumFromArray($params, $secret_key);
$params['CHECKSUMHASH'] = $checksum;
foreach ($params as $key => $val) {
$submit_Params .= trim($key) . '=' . trim(urlencode($val)) . '&';
}
$submit_Params = substr($submit_Params, 0, -1);
$request = $paytm_redirect . $submit_Params;
wp_redirect($request);
exit;
} else {
$fail = true;
// errors were detected
}
if ($fail !== false) {
// if errors are present, send the user back to the purchase page so they can be corrected
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
示例9: sofort_process_payment
function sofort_process_payment($purchase_data)
{
global $edd_options;
// check there is a gateway name
if (!isset($purchase_data['post_data']['edd-gateway'])) {
return;
}
// collect payment data
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => $edd_options['currency'], 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
$errors = edd_get_errors();
if ($errors) {
// problems? send back
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
$payment = edd_insert_payment($payment_data);
// check payment
if (!$payment) {
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
if (!class_exists('SofortLib')) {
require_once 'library/sofortLib.php';
}
$return_url = add_query_arg('payment-confirmation', 'paypal', get_permalink($edd_options['success_page']));
$Sofort = new SofortLib_Multipay(trim($edd_options['sofort_config_id']));
$Sofort->setSofortueberweisung();
$Sofort->setAmount($purchase_data['price']);
$Sofort->setReason('CartId ' . $payment, $purchase_data['post_data']['edd_first'] . ' ' . $purchase_data['post_data']['edd_last']);
$Sofort->addUserVariable($payment);
$Sofort->setSuccessUrl($return_url);
$Sofort->setAbortUrl(edd_get_failed_transaction_uri());
$Sofort->setTimeoutUrl(edd_get_failed_transaction_uri());
$Sofort->setNotificationUrl(home_url('/?sofort=ipn'));
$Sofort->sendRequest();
if ($Sofort->isError()) {
//PNAG-API didn't accept the data
wp_die($Sofort->getError(), 'Error');
} else {
//buyer must be redirected to $paymentUrl else payment cannot be successfully completed!
$paymentUrl = $Sofort->getPaymentUrl();
edd_empty_cart();
wp_redirect($paymentUrl);
exit;
}
}
}
}
示例10: edd_process_paypal_purchase
/**
* Process PayPal Purchase
*
* @access private
* @since 1.0
* @return void
*/
function edd_process_paypal_purchase($purchase_data)
{
global $edd_options;
/*
* purchase data comes in like this
*
$purchase_data = array(
'downloads' => array of download IDs,
'price' => total price of cart contents,
'purchase_key' => // random key
'user_email' => $user_email,
'date' => date('Y-m-d H:i:s'),
'user_id' => $user_id,
'post_data' => $_POST,
'user_info' => array of user's information and used discount code
'cart_details' => array of cart details,
);
*/
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => $edd_options['currency'], 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// record the pending payment
$payment = edd_insert_payment($payment_data);
if ($payment) {
// only send to paypal if the pending payment is created successfully
$listener_url = trailingslashit(home_url()) . '?edd-listener=IPN';
$return_url = add_query_arg('payment-confirmation', 'paypal', get_permalink($edd_options['success_page']));
$cart_summary = edd_get_purchase_summary($purchase_data, false);
// one time payment
if (edd_is_test_mode()) {
$paypal_redirect = 'https://www.sandbox.paypal.com/cgi-bin/webscr/?';
} else {
$paypal_redirect = 'https://www.paypal.com/cgi-bin/webscr/?';
}
$paypal_args = array('cmd' => '_xclick', 'amount' => $purchase_data['price'], 'business' => $edd_options['paypal_email'], 'item_name' => $cart_summary, 'email' => $purchase_data['user_email'], 'no_shipping' => '1', 'no_note' => '1', 'currency_code' => $edd_options['currency'], 'item_number' => $purchase_data['purchase_key'], 'charset' => 'UTF-8', 'custom' => $payment, 'rm' => '2', 'return' => $return_url, 'notify_url' => $listener_url);
//var_dump(http_build_query($paypal_args)); exit;
$paypal_redirect .= http_build_query($paypal_args);
//var_dump(urldecode($paypal_redirect)); exit;
// get rid of cart contents
edd_empty_cart();
// Redirect to paypal
wp_redirect($paypal_redirect);
exit;
} else {
// if errors are present, send the user back to the purchase page so they can be corrected
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
示例11: process_payment
/**
* 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');
}
}
}
示例12: edd_fd_process_payment
function edd_fd_process_payment($purchase_data)
{
global $edd_options;
// setup gateway appropriately for test mode
if (edd_is_test_mode()) {
$endpoint = 'https://api.demo.globalgatewaye4.firstdata.com/transaction/v11/wsdl';
} else {
$endpoint = 'https://api.globalgatewaye4.firstdata.com/transaction/v11/wsdl';
}
// check the posted cc deails
$cc = edd_fd_check_cc_details($purchase_data);
// fcheck for errors before we continue to processing
if (!edd_get_errors()) {
$purchase_summary = edd_get_purchase_summary($purchase_data);
$payment = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_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 = edd_insert_payment($payment);
$address = esc_textarea($_POST['card_address'] . ' ' . $_POST['card_address_2'] . '|' . $_POST['card_zip'] . '|' . $_POST['card_city'] . '|' . $_POST['card_state'] . '|' . $_POST['billing_country']);
$firstdata['Transaction'] = array('ExactID' => $edd_options['firstdata_gateway_id'], 'Password' => $edd_options['firstdata_gateway_password'], 'Transaction_Type' => $edd_options['firstdata_transaction_type'], 'DollarAmount' => $purchase_data['price'], 'Card_Number' => $cc['card_number'], 'Expiry_Date' => $cc['card_exp_month'] . $cc['card_exp_year'], 'CardHoldersName' => $cc['card_name'], 'VerificationStr1' => $address, 'VerificationStr2' => $cc['card_cvc'], 'CVD_Presence_Ind' => 1, 'Reference_No' => $payment, 'ZipCode' => $cc['card_zip'], 'Customer_Ref' => $purchase_data['user_info']['id'], 'Client_IP' => $_SERVER['REMOTE_ADDR'], 'Client_Email' => $purchase_data['user_email'], 'Currency' => $edd_options['currency'], 'Ecommerce_Flag' => is_ssl() ? 8 : 7);
try {
$api = @new SoapClient($endpoint);
$result = $api->__soapCall('SendAndCommit', $firstdata);
} catch (Exception $e) {
edd_set_error('firstdata_api_error', sprintf(__('FirstData System Error: %s', 'edd_firstdata'), $e->getMessage()));
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
$fail = true;
}
if (isset($result) && $result->Transaction_Approved) {
edd_update_payment_status($payment, 'complete');
edd_send_to_success_page();
} elseif ($result->Transaction_Error) {
edd_set_error('firstdata_decline', sprintf(__('Transaction Declined: %s', 'edd_firstdata'), $result->EXact_Message));
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
$fail = true;
}
} else {
$fail = true;
}
}
示例13: process_payment
/**
* Process Payment
*
* Process payments trough the PagSeguro gateway.
*
* @return void
* @since 1.0
*/
function process_payment($purchase_data)
{
global $edd_options;
// check there is a gateway name
if (!isset($purchase_data['post_data']['edd-gateway'])) {
return;
}
// get credentials
$credentials = $this->get_credentials();
// check credentials have been set
if (is_null($credentials['email']) || is_null($credentials['token'])) {
edd_set_error(0, __('Please enter your PagSeguro Client Email and Token in settings', 'edd-pagseguro-gateway'));
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
// get payment
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_option('currency', 'BRL'), 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// insert pending payment
$payment = edd_insert_payment($payment_data);
if (!$payment) {
// problems? send back
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
} else {
// require PagSeguro files
$this->load_pagseguro_sdk();
// verify classes exists
if (!class_exists('PagSeguroPaymentRequest')) {
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
// create payment request
$paymentRequest = new PagSeguroPaymentRequest();
// sets the currency
$paymentRequest->setCurrency('BRL');
// cart summary
$cart_summary = edd_get_purchase_summary($purchase_data, false);
// format total price
$total_price = number_format($purchase_data['price'], 2, '.', '');
// payment request details
$paymentRequest->addItem('01', sanitize_text_field(substr($cart_summary, 0, 95)), '1', strval($total_price));
// sets the reference code for this request
$paymentRequest->setReference($payment);
// sets customer information
$paymentRequest->setSender(sanitize_text_field($purchase_data['user_info']['first_name'] . ' ' . $purchase_data['user_info']['last_name']), $purchase_data['user_email']);
// redirect url
$paymentRequest->setRedirectUrl(add_query_arg('payment-confirmation', 'pagseguro', edd_get_success_page_uri()));
// IPN URL
$paymentRequest->addParameter('notificationURL', get_site_url());
/* TRY CHECKOUT */
try {
// generate credentials
$credentials = new PagSeguroAccountCredentials($credentials['email'], $credentials['token']);
// register this payment request in PagSeguro, to obtain the payment URL for redirect your customer
$checkout_uri = $paymentRequest->register($credentials);
if (gettype($checkout_uri) != 'string') {
throw new exception($checkout_uri);
}
// empty cart
edd_empty_cart();
// send the user to PagSeguro
wp_redirect($checkout_uri);
die;
} catch (Exception $e) {
//catch exception
wp_mail(get_bloginfo('admin_email'), __('PagSeguro Checkout Error', 'edd-pagseguro-gateway'), $e->getMessage());
edd_set_error('pagseguro_exception', $e->getMessage());
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
}
示例14: process_payment
/**
* Process payment submission
*
* @access public
* @since 1.0.0
* @param array $purchase_data The data for a specific purchase
* @return void
*/
public function process_payment($purchase_data)
{
if (!wp_verify_nonce($purchase_data['gateway_nonce'], 'edd-gateway')) {
wp_die(__('Nonce verification has failed', 'edd-wallet'), __('Error', 'edd-wallet'), array('response' => 403));
}
$error = false;
// Double check that we can afford this item
$value = edd_wallet()->wallet->balance($purchase_data['user_email']);
if ($value < $purchase_data['price']) {
edd_record_gateway_error(__('Wallet Gateway Error', 'edd-wallet'), __('User wallet has insufficient funds.', 'edd-wallet'), 0);
edd_set_error('wallet_error', __('Insufficient funds.', 'edd-wallet'));
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
$payment_data = array('price' => $purchase_data['price'], 'date' => $purchase_data['date'], 'user_email' => $purchase_data['user_email'], 'purchase_key' => $purchase_data['purchase_key'], 'currency' => edd_get_currency(), 'downloads' => $purchase_data['downloads'], 'user_info' => $purchase_data['user_info'], 'cart_details' => $purchase_data['cart_details'], 'status' => 'pending');
// Record the pending payment
$payment = edd_insert_payment($payment_data);
if ($payment) {
// Update payment status
edd_update_payment_status($payment, 'publish');
// Withdraw the funds
edd_wallet()->wallet->withdraw($purchase_data['user_info']['id'], $payment_data['price'], 'withdrawal', $payment);
edd_empty_cart();
edd_send_to_success_page();
} else {
edd_record_gateway_error(__('Wallet Gateway Error', 'edd-wallet'), sprintf(__('Payment creation failed while processing a Wallet purchase. Payment data: %s', 'edd-wallet'), json_encode($payment_data)), $payment);
edd_send_back_to_checkout('?payment-mode=' . $purchase_data['post_data']['edd-gateway']);
}
}
示例15: record_subscription_payment
/**
* Record a subscription payment
*
* @since 1.0.1
* @return void
*/
public function record_subscription_payment($parent_id = 0, $amount = '', $txn_id = '', $unique_key = 0)
{
global $edd_options;
if ($this->payment_exists($unique_key)) {
return;
}
// increase the earnings for each product in the subscription
$downloads = edd_get_payment_meta_downloads($parent_id);
if ($downloads) {
foreach ($downloads as $download) {
edd_increase_earnings($download['id'], $amount);
}
}
// setup the payment daya
$payment_data = array('parent' => $parent_id, 'price' => $amount, 'user_email' => edd_get_payment_user_email($parent_id), 'purchase_key' => get_post_meta($parent_id, '_edd_payment_purchase_key', true), 'currency' => edd_get_option('currency', 'usd'), 'downloads' => $downloads, 'user_info' => edd_get_payment_meta_user_info($parent_id), 'cart_details' => edd_get_payment_meta_cart_details($parent_id), 'status' => 'edd_subscription', 'gateway' => edd_get_payment_gateway($parent_id));
// record the subscription payment
$payment = edd_insert_payment($payment_data);
if (!empty($unique_key)) {
update_post_meta($payment, '_edd_recurring_' . $unique_key, '1');
}
// Record transaction ID
if (!empty($txn_id)) {
if (function_exists('edd_set_payment_transaction_id')) {
edd_set_payment_transaction_id($payment, $txn_id);
}
}
// Update the expiration date of license keys, if EDD Software Licensing is active
if (function_exists('edd_software_licensing')) {
$licenses = edd_software_licensing()->get_licenses_of_purchase($parent_id);
if (!empty($licenses)) {
foreach ($licenses as $license) {
// Update the expiration dates of the license key
edd_software_licensing()->renew_license($license->ID, $parent_id);
}
}
}
do_action('edd_recurring_record_payment', $payment, $parent_id, $amount, $txn_id, $unique_key);
}