Jump to content


Photo

Please can you help?


  • Please log in to reply
18 replies to this topic

#1 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 07:01 PM

Hi, please can anyone help, i have a new php site, and run a games server, we have just set up paypal on our site, and members have donated, the payment does come to our mail addy, and onto pay pal, but does not show on the site they made any payments, i am running this one Module's Name:NukeTreasury ,Module's Version: 1.0 please could you tell me what i might be doing wrong, and how to fix this, yes i am a noob at php, so please make this easy. thanks

#2 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 09 October 2006 - 07:45 PM

I am not familiar with NukeTreasury, but this might be a misconfiguration on the paypal end. Do you have Auto-Return turned on? It's under My Account > Preferences > Website Payment Preferences. You'll also want Payment Data Transfer turned on, and have a valid URL in the Return URL blank.

#3 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 07:56 PM

Are you saying the setting on pay pals end, have to be turned on, or on my site? sorry like i said not upto speed on php.



#4 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 09 October 2006 - 07:59 PM

If paypal is not instructed to send payment data back to your site, it won't -- which really has nothing to do with PHP. Check your paypal settings mentioned in my previous post to ensure that the payment data is even being sent to your site.

#5 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 08:21 PM

ok can find my account, but not  Preferences > Website Payment Preferences?  still loking but having no luck.  :'(

#6 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 09 October 2006 - 08:27 PM

Sorry -- "Profile"

Posted Image

#7 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 08:31 PM

Ok just looked thanks for your screen shot, we do not have all listed like you?

what account should we have to list the same as you? we dont have the web opptions.


Posted Image

#8 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 08:47 PM

Have just phoned pay pal, they said to get that kind of account we must have either a premier account, or a business account, so thanks for all your help. I'll sort that out now and hope it works.  ::)

#9 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 09:06 PM

Ok i have gone to the higher account, and set what you told me, now its saying use the numbers in they gave to setup payments, its a long string on numbers and letters, what should i do with them and how?

thanks

#10 gijew

gijew
  • Members
  • PipPipPip
  • Advanced Member
  • 240 posts
  • LocationCalifornia

Posted 09 October 2006 - 09:11 PM

Put the "letters and numbers" into your code and they become code =)

PayPal encodes the form data as to hide your sensive account information so it's okay to place it into your code.  When you view it in a browser you "should" see what you want to see.

Good luck!
I'm considered good looking in some countries

#11 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 09 October 2006 - 09:17 PM

Sorry for bing a pain in the as* but i have no idea what part to add the code please could you say it in dummy turms, and step by step thanks.

#12 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 09 October 2006 - 09:24 PM

I'm not entirely sure what you mean by "they" is that ebay or your software?

#13 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 10 October 2006 - 03:36 AM

What i mean by "they" is this! my pay pal account said to place the code into the site,it said this after clicking the two parts you told me. "Auto-Return turned on? It's under My Account > Preferences > Website Payment Preferences. You'll also want Payment Data Transfer turned on, and have a valid URL in the Return URL blank." then it asked for me to add the code to my site." but like i have already said i have no idea what part to add the code i'e string of numbers and letters?  does this make any sence to you? or am i mis understanding what i should be doing.  if i new what file this code should be placed onto and in what place to add the code i'm sure i could find it, please point me in the right direction thanks. "Auto-Return turned on? It's under My Account > Preferences > Website Payment Preferences. You'll also want Payment Data Transfer turned on, and have a valid URL in the Return URL blank." then it asked for me to add the code to my site.

#14 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 10 October 2006 - 05:13 AM

does the code go on her or not? if not what part or file please?



ipnppd.php
File Type: PHP script text
sql_query($query_cfg))) {
	message_die(GENERAL_ERROR, 'Could not obtain nuke tresury config data', '', __LINE__, __FILE__, $sql);
}

while ($cfgset && $row = $db->sql_fetchrow($cfgset)) {
	$tr_config[$row['name']] = $row['value'];
}

$ERR = 0;
$log = "";
$loglvl = $tr_config[ipn_dbg_lvl];
define(_ERR, 1);
define(_INF, 2);

if (isset($_GET['dbg'])) {
	$dbg = 1;
} else {
	$dbg = 0;
}

if ($dbg) {
	dprt("Debug mode activated", _INF);
	echo "PHP-Nuke Treasury modPayPal Instant Payment Notification scriptSee below for status:";
	echo "----------------------------------------------------------------";
	$receiver_email = $tr_config['receiver_email'];
}

$req = "cmd=_notify-validate";

foreach ($_POST as $key => $value) {
	$value = urlencode(stripslashes($value));
	$req .= "&$key=$value";
}

$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$item_name = $_POST['item_name'];
$item_number = $_POST['item_number'];
$payment_status = $_POST['payment_status'];
$payment_amount = $_POST['mc_gross'];
$payment_currency = $_POST['mc_currency'];
$txn_id = $_POST['txn_id'];
$txn_type = $_POST['txn_type'];
$receiver_email = $_POST['receiver_email'];
$payer_email = $_POST['payer_email'];

dprt("Opening connection and validating request with PayPal...", _INF);

$fp = fsockopen ('www.paypal.com', 80, $errno, $errstr, 30);

if (!$fp) {
	dprt("FAILED to connect to PayPAl", _ERR);
	die();
}

dprt("OK!", _INF);

fputs ($fp, $header . $req);

if (!$dbg && strcasecmp($_POST['business'], $tr_config['receiver_email']) != 0) {
	dprt("Incorrect receiver email: $receiver_email , aborting", _ERR) ;
	$ERR = 1;
}

$insertSQL = "";

if ($txn_id) {
	$sql = "SELECT * FROM " . $prefix . "_treasury_transactions WHERE txn_id = '$txn_id'";

	if (!($Recordset1 = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not obtain data from nuke tresury transactions', '', __LINE__, __FILE__, $sql);
	}

	$row_Recordset1 = $db->sql_fetchrow($Recordset1);
	$NumDups = $db->sql_numrows($Recordset1);
}

while (!$dbg && !$ERR && !feof($fp)) {
	$res = fgets ($fp, 1024);

	if (strcmp ($res, "VERIFIED") == 0) {
		dprt("PayPal Verified", _INF);

		if (strcmp($payment_status, "Refunded") == 0) {
			dprt("Transaction is a Refund", _INF);

			if (($NumDups == 0) || strcmp($row_Recordset1[payment_status], "Completed") || (strcmp($row_Recordset1[txn_type], "web_accept") != 0 && strcmp($row_Recordset1[txn_type], "send_money") != 0)) {
				dprt("IPN Error: Received refund but missing prior completed transaction", _ERR);

				foreach($_POST as $key => $val) {
					dprt("$key => $val", $_ERR);
				}
				break;
			}
			if ($NumDups != 1)
			{
				dprt("IPN Error: Received refund but multiple prior txn_id's encountered, aborting", _ERR);

				foreach($_POST as $key => $val) {
					dprt("$key => $val", $_ERR);
				}
				break;
			}

			$mc_gross = -$_POST['mc_gross'];
			$mc_fee = -$_POST['mc_fee'];
			$insertSQL = sprintf("INSERT INTO " . $prefix . "_treasury_transactions (`txn_id`,`business`,`item_name`, `item_number`, `quantity`, `invoice`, `custom`, `memo`, `tax`, `option_name1`, `option_selection1`, `option_name2`, `option_selection2`, `payment_status`, `payment_date`, `txn_type`, `mc_gross`, `mc_fee`, `mc_currency`, `settle_amount`, `exchange_rate`, `first_name`, `last_name`, `address_street`, `address_city`, `address_state`, `address_zip`, `address_country`, `address_status`, `payer_email`, `payer_status`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $_POST['txn_id'],$_POST['business'],$_POST['item_name'],$_POST['item_number'],$_POST['quantity'],$_POST['invoice'],$_POST['custom'],$_POST['memo'],$_POST['tax'],$_POST['option_name1'],$_POST['option_selection1'],$_POST['option_name2'],$_POST['option_selection2'],$_POST['payment_status'],strftime('%Y-%m-%d %H:%M:%S',strtotime($_POST['payment_date'])),$_POST['txn_type'],$mc_gross,$mc_fee,$_POST['mc_currency'],$_POST['settle_amount'],$_POST['exchange_rate'],$_POST['first_name'],$_POST['last_name'],$_POST['address_street'],$_POST['address_city'],$_POST['address_state'],$_POST['address_zip'],$_POST['address_country'],$_POST['address_status'],$_POST['payer_email'],$_POST['payer_status']);

			dprt($insertSQL, _INF);

			if (!($Result1 = $db->sql_query($insertSQL))) {
				message_die(GENERAL_ERROR, 'Could not insert data into nuke tresury transactions', '', __LINE__, __FILE__, $sql);
			}

			dprt("SQL result = " . $Result1, _INF);
			break;
		} else if ((strcmp($payment_status, "Completed") == 0) && ((strcmp($txn_type, "web_accept")== 0) || (strcmp($txn_type, "send_money")== 0))) {
			dprt("Normal transaction", _INF);

			if ($lp) {
				fputs($lp, $payer_email . " " . $payment_status . " " . $_POST['payment_date'] . "\n");
			}

			if ($NumDups != 0) {
				dprt("Valid IPN, but DUPLICATE txn_id! aborting", _ERR);

				foreach($_POST as $key => $val) {
					dprt("$key => $val", $_ERR);
				}
				break;
			}

            //@RJR-Pwmg@Rncvkpwo@-@Eqratkijv@(e)@VgejIHZ.eqo
			$insertSQL = sprintf("INSERT INTO " . $prefix . "_treasury_transactions (`txn_id`,`business`,`item_name`, `item_number`, `quantity`, `invoice`, `custom`, `memo`, `tax`, `option_name1`, `option_selection1`, `option_name2`, `option_selection2`, `payment_status`, `payment_date`, `txn_type`, `mc_gross`, `mc_fee`, `mc_currency`, `settle_amount`, `exchange_rate`, `first_name`, `last_name`, `address_street`, `address_city`, `address_state`, `address_zip`, `address_country`, `address_status`, `payer_email`, `payer_status`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')", $_POST['txn_id'],$_POST['business'],$_POST['item_name'],$_POST['item_number'],$_POST['quantity'],$_POST['invoice'],$_POST['custom'],$_POST['memo'],$_POST['tax'],$_POST['option_name1'],$_POST['option_selection1'],$_POST['option_name2'],$_POST['option_selection2'],$_POST['payment_status'],strftime('%Y-%m-%d %H:%M:%S',strtotime($_POST['payment_date'])),$_POST['txn_type'],$_POST['mc_gross'],$_POST['mc_fee'],$_POST['mc_currency'],$_POST['settle_amount'],$_POST['exchange_rate'],$_POST['first_name'],$_POST['last_name'],$_POST['address_street'],$_POST['address_city'],$_POST['address_state'],$_POST['address_zip'],$_POST['address_country'],$_POST['address_status'],$_POST['payer_email'],$_POST['payer_status']);
			dprt($insertSQL, _INF);

			if (!($Result1 = $db->sql_query($insertSQL))) {
				message_die(GENERAL_ERROR, 'Could not insert data into nuke tresury transactions', '', __LINE__, __FILE__, $sql);
			}

			dprt("SQL result = " . $Result1, _INF);
			break;
		} else {
			dprt("Valid IPN, but not interested in this transaction", _ERR);

			foreach($_POST as $key => $val) {
				dprt("$key => $val", $_ERR);
			}
			break;
		}
	} else if (strcmp ($res, "INVALID") == 0) {
		dprt("Invalid IPN transaction, this is an abnormal condition", _ERR);

		foreach($_POST as $key => $val) {
			dprt("$key => $val", $_ERR);
		}
		break;
	}
}

if ($dbg) {
	$sql = "SELECT * FROM " . $prefix . "_treasury_transactions LIMIT 10";

	echo "Executing test query...";

	if (!($Result1 = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not obtain data from nuke tresury transtransactions', '', __LINE__, __FILE__, $sql);
	}

	if ($Result1) {
		echo "PASSED!";
	} else {
		echo "FAILED";
	}

	echo "PayPal Receiver Email: $tr_config[receiver_email]" ;
}

if ($log) {
	dprt("Logging events\n", _INF);

	$sql = "INSERT INTO " . $prefix . "_treasury_translog VALUES ('','" . strftime('%Y-%m-%d %H:%M:%S',mktime()) . "', '" . strftime('%Y-%m-%d %H:%M:%S',strtotime($_POST['payment_date'])) . "','" . addslashes($log) . "')";

	if (!($Result1 = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not insert data into nuke tresury translog', '', __LINE__, __FILE__, $sql);
	}

	$sql = "SELECT id as lowid FROM " . $prefix . "_treasury_translog ORDER BY id DESC LIMIT " . $tr_config[ipn_log_entries];

	if (!($Result1 = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not obtain nuke tresury translog', '', __LINE__, __FILE__, $sql);
	}

	while($recordSet = $db->sql_fetchrow($Result1)) {
		$lowid = $recordSet[lowid];
	}

	$sql = "DELETE FROM " . $prefix . "_treasury_translog WHERE id < '" . $lowid . "'";

	if (!($Result1 = $db->sql_query($sql))) {
		message_die(GENERAL_ERROR, 'Could not delete nuke tresury translog', '', __LINE__, __FILE__, $sql);
	}
}

fclose ($fp);

if ($lp) {
	fputs($lp,"Exiting\n");
}

if ($lp) {
	fclose ($lp);
}

if ($dbg) {
	echo "----------------------------------------------------------------";
	echo "If you don't see any error messages, you should be good to go!";
}

function dprt($str, $clvl) {
	global $dbg, $lp, $log, $loglvl;

	if ($lp) {
		fputs($lp, $str . "\n");
	}

	if ($dbg) {
		echo $str . "";
	}

	if ($clvl <= $loglvl) {
		$log .= $str . "\n";
	}
}

die();

?>


#15 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 10 October 2006 - 02:28 PM

You're more than likely looking for the identity token -- which is generated by Paypal to confirm that your website is who it says it is. This page is accessible at: My Account > Profile > Website Payment Preferences. You should be able to turn on payment data transfer and then have an identity token generated.

Here's paypal's manuel on the subject:
https://www.paypal.c...ationguide.pdf"

#16 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 10 October 2006 - 04:36 PM

I think i have the token, but do not know what to do with it, or in what part of the site to place it?

#17 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 10 October 2006 - 05:25 PM

That component goes someplace on your side -- not paypal's. You might have to check your nuketreasury documentation to find out.

#18 nightlife

nightlife
  • Members
  • PipPip
  • Member
  • 24 posts

Posted 10 October 2006 - 06:00 PM

I dont have any nuketreasury documentation.  I'm sure its s setting on my site has to be changed, or scriped edited to show the site what to look  for in paypal account, i have the code paypal gave me, would like some one how set up paypal and has it working right on there site to please help me thanks?

#19 michaellunsford

michaellunsford
  • Members
  • PipPipPip
  • Advanced Member
  • 1,023 posts
  • LocationLouisiana, USA

Posted 10 October 2006 - 06:57 PM

I see some code in what you've posted expecting instant payment notification. That is yet another feature offered by paypal (which is under your profile's selling preferences by the name "instant payment notification preferences"). Try getting that setup and see if it works.

If you haven't already done so, you might also want to setup a sandbox account on paypal here: https://developer.paypal.com -- this can help you to test your impelmentation while not dealing with real money.

Also, most of your problems appear to be paypal related and not so much php related. If you're looking for paypal experts, here's their board: http://www.paypaldev.org




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users