<?php
include_once('../../../../wp-load.php');
function cs_update_transaction( $cs_trans_array = array(), $cs_trans_id ){
foreach($cs_trans_array as $trans_key => $trans_val) {
update_post_meta( $cs_trans_id, "$trans_key", $trans_val );
}
}
function cs_update_campaign( $id = '', $cs_trans_id = '' ){
$cs_camp_raised = get_post_meta( $id, "cs_campaign_raised", true );
$cs_trans_amount = get_post_meta( $cs_trans_id, "cs_transaction_amount", true );
if( $cs_trans_amount > 0 ) {
$cs_camp_raised += $cs_trans_amount;
update_post_meta( $id, "cs_campaign_raised", $cs_camp_raised );
}
}
//Build the data to post back to Paypal
$postback = 'cmd=_notify-validate';
// go through each of the posted vars and add them to the postback variable
foreach ($_POST as $key => $value) {
$value = urlencode(stripslashes($value));
$postback .= "&$key=$value";
}
$ourFileName = "debug1_postdata.txt";
$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");
fwrite($ourFileHandle, $postback);
fclose($ourFileHandle);
$to = 'webmaster@example.com';
$subject = 'the subject';
$message = $postback;
$message .= $_POST;
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
/*
* Paypal Gateway Listner
*/
if ( isset( $_POST['payment_status'] ) && $_POST['payment_status'] == 'Completed' ) {
$campaign_id = $_POST['item_number'];
if(isset($campaign_id) && $campaign_id != '' ){
if(isset($_POST['txn_id']) && $_POST['txn_id'] <> ''){
$transaction_array = array();
$transaction_array['cs_trans_id'] = esc_attr($_POST['txn_id']);
$transaction_array['cs_transaction_status'] = 'approved';
$transaction_array['cs_full_address'] = esc_attr($_POST['address_street']).' '.esc_attr($_POST['address_city']).' '.esc_attr($_POST['address_country']);
$transaction_array['cs_transaction_amount'] = esc_attr($_POST['payment_gross']);
$transaction_array['cs_transaction_pay_method'] = 'cs_paypal_gateway';
$transaction_array['cs_trans_currency'] = esc_attr($_POST['mc_currency']);
$transaction_array['cs_summary_email'] = esc_attr($_POST['payer_email']);
$transaction_array['cs_first_name'] = esc_attr($_POST['first_name']);
$transaction_array['cs_last_name'] = esc_attr($_POST['cs_last_name']);
$cs_trans_id = isset($_POST['custom']) ? $_POST['custom'] : '';
cs_update_transaction( $transaction_array, $cs_trans_id );
cs_update_campaign( $campaign_id, $cs_trans_id );
}
}
}
/*
* Authorize Gateway Listner
*/
if ( isset( $_POST['x_response_code'] ) && $_POST['x_response_code'] == '1' ) {
$campaign_id = $_POST['x_cust_id'];
if(isset($campaign_id) && $campaign_id != ''){
$transaction_array = array();
$transaction_array['transaction_purchase_on'] = date('Y-m-d H:i:s');
$transaction_array['cs_transaction_status'] = 'approved';
$transaction_array['cs_transaction_pay_method'] = 'cs_authorizedotnet_gateway';
$transaction_array['order_id'] = esc_attr($_POST['x_po_num']);
$transaction_array['summary_status'] = 'Completed';
$transaction_array['cs_trans_id'] = esc_attr($_POST['x_trans_id']);
$transaction_array['cs_transaction_amount'] = esc_attr($_POST['x_amount']);
$transaction_array['cs_trans_currency'] = 'USD';
$transaction_array['address_street'] = esc_attr($_POST['x_address']);
$transaction_array['address_city'] = esc_attr($_POST['x_city']);
$transaction_array['address_country'] = esc_attr($_POST['x_country']);
$transaction_array['cs_full_address'] = esc_attr($_POST['x_address']).' '.esc_attr($_POST['x_city']).' '.esc_attr($_POST['x_country']);
if( esc_attr($_POST['x_email'] == '' ) ) {
$transaction_array['cs_summary_email'] = cs_get_user_data($transaction_array['order_id'],'email');
} else {
$transaction_array['cs_summary_email'] = esc_attr($_POST['x_email']);
}
if( esc_attr($_POST['x_first_name'] == '' ) ) {
$transaction_array['cs_first_name'] = cs_get_user_data($transaction_array['order_id'],'first_name');
} else {
$transaction_array['cs_first_name'] = esc_attr($_POST['x_first_name']);
}
if( esc_attr($_POST['x_last_name'] == '' ) ) {
$transaction_array['cs_last_name'] = cs_get_user_data($transaction_array['order_id'],'last_name');
} else {
$transaction_array['cs_last_name'] = esc_attr($_POST['x_last_name']);
}
$cs_trans_id = isset($_POST['x_po_num']) ? $_POST['x_po_num'] : '';
cs_update_transaction( $transaction_array, $cs_trans_id );
cs_update_campaign( $campaign_id, $cs_trans_id );
}
}
/*
* Skrill Gateway Listner
*/
if( isset( $_POST['merchant_id'] ) ) {
// Validate the Moneybookers signature
$concatFields = $_POST['merchant_id']
.$_POST['order_id']
.strtoupper(md5('Paste your secret word here'))
.$_POST['mb_amount']
.$_POST['mb_currency']
.$_POST['status'];
$cs_plugin_options = get_option('cs_plugin_options');
$MBEmail = $cs_plugin_options['skrill_email'];
// Ensure the signature is valid, the status code == 2,
// and that the money is going to you
if ( isset( $_POST['status'] ) && $_POST['status'] == '2' && trim( $_POST['pay_to_email'] ) == trim( $MBEmail ) )
{
$data = explode('||',$_POST['transaction_id']);
$order_id = $data[0];
if(isset($campaign_id) && $campaign_id != ''){
$transaction_array = array();
$transaction_array['transaction_purchase_on'] = date('Y-m-d H:i:s');
$transaction_array['cs_transaction_status'] = 'approved';
$transaction_array['cs_transaction_pay_method'] = 'cs_skrill_gateway';
$transaction_array['order_id'] = esc_attr($order_id);
$transaction_array['summary_status'] = 'Completed';
$transaction_array['cs_trans_id'] = esc_attr($_POST['mb_transaction_id']);
$transaction_array['cs_transaction_amount'] = esc_attr($_POST['amount']);
$transaction_array['cs_trans_currency'] = $_POST['currency'];
$transaction_array['transaction_address'] = '';
if( $user_id != '' ) {
if( $_POST['summary_email'] == '' ) {
$transaction_array['cs_summary_email'] = cs_get_user_data($transaction_array['order_id'],'email');
}
$transaction_array['cs_first_name'] = cs_get_user_data($transaction_array['order_id'],'first_name');
$transaction_array['cs_last_name'] = cs_get_user_data($transaction_array['order_id'],'last_name');
$transaction_array['cs_full_address'] = cs_get_user_data($transaction_array['order_id'],'address');
}
$cs_trans_id = isset($order_id) ? $order_id : '';
cs_update_transaction( $transaction_array, $cs_trans_id );
cs_update_campaign( $campaign_id, $cs_trans_id );
}
}
else
{
// -2 == Order Pending
}
}
function cs_get_user_data( $order_id = '' , $key='' ){
$user_id = get_post_meta((int)$order_id,'transaction_user',true);
if( $user_id != '' ) {
if( $key != '' ) {
return get_user_meta($user_id, $key, true);
}
}
return;
}