<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: PayPal IPN Example Code</title>
	<atom:link href="http://www.mike-griffiths.co.uk/paypal-ipn-example-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/</link>
	<description>Blog</description>
	<lastBuildDate>Wed, 25 Aug 2010 07:51:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mike</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-235</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Thu, 15 Oct 2009 20:46:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-235</guid>
		<description>Yeah you&#039;re right.  PayPal does have a great community support system in place though.

With regards to Steve&#039;s code, I can&#039;t comment on that.  He may have typed it in that way or perhaps WordPress is playing silly buggers.  Either way, my code is correct and has the right characters.

Thanks.</description>
		<content:encoded><![CDATA[<p>Yeah you&#8217;re right.  PayPal does have a great community support system in place though.</p>
<p>With regards to Steve&#8217;s code, I can&#8217;t comment on that.  He may have typed it in that way or perhaps WordPress is playing silly buggers.  Either way, my code is correct and has the right characters.</p>
<p>Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-234</link>
		<dc:creator>Glenn</dc:creator>
		<pubDate>Thu, 15 Oct 2009 20:36:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-234</guid>
		<description>I agree. I&#039;ve been browsing through Paypal&#039;s site for days. Lots of things I would like to see changed -- including an IPN cart example, real data dictionaries for the IPN variables (no-one seems to use Backus Naur form anymore, even though it makes things so clear.)

FYI - When I copied over this code I noticed that Steve&#039;s code has a single double quote character (&quot;) following the &#039;?&#039; rather than (the correct) 2 single quotes (&#039;&#039;).</description>
		<content:encoded><![CDATA[<p>I agree. I&#8217;ve been browsing through Paypal&#8217;s site for days. Lots of things I would like to see changed &#8212; including an IPN cart example, real data dictionaries for the IPN variables (no-one seems to use Backus Naur form anymore, even though it makes things so clear.)</p>
<p>FYI &#8211; When I copied over this code I noticed that Steve&#8217;s code has a single double quote character (&#8221;) following the &#8216;?&#8217; rather than (the correct) 2 single quotes (&#8221;).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-233</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Thu, 15 Oct 2009 17:36:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-233</guid>
		<description>Hi Glenn,

Thanks for your comments.  I&#039;ve updated the code to fix those two slight issues.  

I&#039;m glad this is helping someone, frankly example code is one of the most important parts of the documentation for services like this and PayPal&#039;s is shoddy.

Mike</description>
		<content:encoded><![CDATA[<p>Hi Glenn,</p>
<p>Thanks for your comments.  I&#8217;ve updated the code to fix those two slight issues.  </p>
<p>I&#8217;m glad this is helping someone, frankly example code is one of the most important parts of the documentation for services like this and PayPal&#8217;s is shoddy.</p>
<p>Mike</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Glenn</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-232</link>
		<dc:creator>Glenn</dc:creator>
		<pubDate>Thu, 15 Oct 2009 17:13:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-232</guid>
		<description>Combining fixes from the last two comments, this is the best example I have seen anywhere of IPN handling. Haven&#039;t tried it yet but it really helped clarify the process for me.</description>
		<content:encoded><![CDATA[<p>Combining fixes from the last two comments, this is the best example I have seen anywhere of IPN handling. Haven&#8217;t tried it yet but it really helped clarify the process for me.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-231</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Tue, 13 Oct 2009 18:14:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-231</guid>
		<description>Hi Steve,

Thanks for the comment.  Silly mistake on my half.  Also, note that $notify_email is used by mistake in places instead of $CONFIG[&#039;notify_email&#039;].

Thanks</description>
		<content:encoded><![CDATA[<p>Hi Steve,</p>
<p>Thanks for the comment.  Silly mistake on my half.  Also, note that $notify_email is used by mistake in places instead of $CONFIG['notify_email'].</p>
<p>Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve</title>
		<link>http://www.mike-griffiths.co.uk/paypal-ipn-example-code/comment-page-1/#comment-230</link>
		<dc:creator>Steve</dc:creator>
		<pubDate>Tue, 13 Oct 2009 16:58:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.mike-griffiths.co.uk/?p=84#comment-230</guid>
		<description>Works OK, apart from the deliberate test you set us; all the post vars are $_POST[&#039;reason_code&#039;]);

Try this instead:
$item_name              = (empty($_POST[&#039;item_name&#039;]) ? &#039;&#039; : $_POST[&#039;item_name&#039;]); 
$business              = (empty($_POST[&#039;business&#039;]) ? &#039;&#039; : $_POST[&#039;business&#039;]); 
$item_number          = (empty($_POST[&#039;item_number&#039;]) ? &#039;&#039; : $_POST[&#039;item_number&#039;]); 
$payment_status      = (empty($_POST[&#039;payment_status&#039;]) ? &#039;&#039; : $_POST[&#039;payment_status&#039;]); 
$mc_gross              = (empty($_POST[&#039;mc_gross&#039;]) ? &#039;&#039; : $_POST[&#039;mc_gross&#039;]); 
$payment_currency      = (empty($_POST[&#039;mc_currency&#039;]) ? &#039;&#039; : $_POST[&#039;mc_currency&#039;]); 
$txn_id              = (empty($_POST[&#039;txn_id&#039;]) ? &#039;&#039; : $_POST[&#039;txn_id&#039;]); 
$receiver_email      = (empty($_POST[&#039;receiver_email&#039;]) ? &#039;&#039; : $_POST[&#039;receiver_email&#039;]); 
$receiver_id          = (empty($_POST[&#039;receiver_id&#039;]) ? &#039;&#039; : $_POST[&#039;receiver_id&#039;]); 
$quantity              = (empty($_POST[&#039;quantity&#039;]) ? &#039;&#039; : $_POST[&#039;quantity&#039;]); 
$num_cart_items      = (empty($_POST[&#039;num_cart_items&#039;]) ? &#039;&#039; : $_POST[&#039;num_cart_items&#039;]); 
$payment_date          = (empty($_POST[&#039;payment_date&#039;]) ? &#039;&#039; : $_POST[&#039;payment_date&#039;]); 
$first_name          = (empty($_POST[&#039;first_name&#039;]) ? &#039;&#039; : $_POST[&#039;first_name&#039;]); 
$last_name              = (empty($_POST[&#039;last_name&#039;]) ? &#039;&#039; : $_POST[&#039;last_name&#039;]); 
$payment_type          = (empty($_POST[&#039;payment_type&#039;]) ? &#039;&#039; : $_POST[&#039;payment_type&#039;]); 
$payment_status      = (empty($_POST[&#039;payment_status&#039;]) ? &#039;&#039; : $_POST[&#039;payment_status&#039;]); 
$payment_gross          = (empty($_POST[&#039;payment_gross&#039;]) ? &#039;&#039; : $_POST[&#039;payment_gross&#039;]); 
$payment_fee          = (empty($_POST[&#039;payment_fee&#039;]) ? &#039;&#039; : $_POST[&#039;payment_fee&#039;]); 
$settle_amount          = (empty($_POST[&#039;settle_amount&#039;]) ? &#039;&#039; : $_POST[&#039;settle_amount&#039;]); 
$memo                  = (empty($_POST[&#039;memo&#039;]) ? &#039;&#039; : $_POST[&#039;memo&#039;]); 
$payer_email          = (empty($_POST[&#039;payer_email&#039;]) ? &#039;&#039; : $_POST[&#039;payer_email&#039;]); 
$txn_type              = (empty($_POST[&#039;txn_type&#039;]) ? &#039;&#039; : $_POST[&#039;txn_type&#039;]); 
$payer_status          = (empty($_POST[&#039;payer_status&#039;]) ? &#039;&#039; : $_POST[&#039;payer_status&#039;]); 
$address_street      = (empty($_POST[&#039;address_street&#039;]) ? &#039;&#039; : $_POST[&#039;address_street&#039;]); 
$address_city          = (empty($_POST[&#039;address_city&#039;]) ? &#039;&#039; : $_POST[&#039;address_city&#039;]); 
$address_state           = (empty($_POST[&#039;address_state&#039;]) ? &#039;&#039; : $_POST[&#039;address_state&#039;]); 
$address_zip          = (empty($_POST[&#039;address_zip&#039;]) ? &#039;&#039; : $_POST[&#039;address_zip&#039;]); 
$address_country      = (empty($_POST[&#039;address_country&#039;]) ? &#039;&#039; : $_POST[&#039;address_country&#039;]); 
$address_status      = (empty($_POST[&#039;address_status&#039;]) ? &#039;&#039; : $_POST[&#039;address_status&#039;]); 
$item_number          = (empty($_POST[&#039;item_number&#039;]) ? &#039;&#039; : $_POST[&#039;item_number&#039;]); 
$tax                  = (empty($_POST[&#039;tax&#039;]) ? &#039;&#039; : $_POST[&#039;tax&#039;]); 
$option_name1          = (empty($_POST[&#039;option_name1&#039;]) ? &#039;&#039; : $_POST[&#039;option_name1&#039;]); 
$option_selection1      = (empty($_POST[&#039;option_selection1&#039;]) ? &#039;&#039; : $_POST[&#039;option_selection1&#039;]); 
$option_name2          = (empty($_POST[&#039;option_name2&#039;]) ? &#039;&#039; : $_POST[&#039;option_name2&#039;]); 
$option_selection2      = (empty($_POST[&#039;option_selection2&#039;]) ? &#039;&#039; : $_POST[&#039;option_selection2&#039;]); 
$for_auction          = (empty($_POST[&#039;for_auction&#039;]) ? &#039;&#039; : $_POST[&#039;for_auction&#039;]); 
$invoice              = (empty($_POST[&#039;invoice&#039;]) ? &#039;&#039; : $_POST[&#039;invoice&#039;]); 
$custom              = (empty($_POST[&#039;custom&#039;]) ? &#039;&#039; : $_POST[&#039;custom&#039;]); 
$notify_version      = (empty($_POST[&#039;notify_version&#039;]) ? &#039;&#039; : $_POST[&#039;notify_version&#039;]); 
$verify_sign          = (empty($_POST[&#039;verify_sign&#039;]) ? &#039;&#039; : $_POST[&#039;verify_sign&#039;]); 
$payer_business_name = (empty($_POST[&#039;payer_business_name&#039;]) ? &#039;&#039; : $_POST[&#039;payer_business_name&#039;]); 
$payer_id              = (empty($_POST[&#039;payer_id&#039;]) ? &#039;&#039; : $_POST[&#039;payer_id&#039;]); 
$mc_currency          = (empty($_POST[&#039;mc_currency&#039;]) ? &#039;&#039; : $_POST[&#039;mc_currency&#039;]); 
$mc_fee              = (empty($_POST[&#039;mc_fee&#039;]) ? &#039;&#039; : $_POST[&#039;mc_fee&#039;]); 
$exchange_rate          = (empty($_POST[&#039;exchange_rate&#039;]) ? &#039;&#039; : $_POST[&#039;exchange_rate&#039;]); 
$settle_currency       = (empty($_POST[&#039;settle_currency&#039;]) ? &#039;&#039; : $_POST[&#039;settle_currency&#039;]); 
$parent_txn_id       = (empty($_POST[&#039;parent_txn_id&#039;]) ? &#039;&#039; : $_POST[&#039;parent_txn_id&#039;]); 
$pending_reason      = (empty($_POST[&#039;pending_reason&#039;]) ? &#039;&#039; : $_POST[&#039;pending_reason&#039;]); 
$reason_code          = (empty($_POST[&#039;reason_code&#039;]) ? &#039;&#039; : $_POST[&#039;reason_code&#039;]);</description>
		<content:encoded><![CDATA[<p>Works OK, apart from the deliberate test you set us; all the post vars are $_POST['reason_code']);</p>
<p>Try this instead:<br />
$item_name              = (empty($_POST['item_name']) ? &#8221; : $_POST['item_name']);<br />
$business              = (empty($_POST['business']) ? &#8221; : $_POST['business']);<br />
$item_number          = (empty($_POST['item_number']) ? &#8221; : $_POST['item_number']);<br />
$payment_status      = (empty($_POST['payment_status']) ? &#8221; : $_POST['payment_status']);<br />
$mc_gross              = (empty($_POST['mc_gross']) ? &#8221; : $_POST['mc_gross']);<br />
$payment_currency      = (empty($_POST['mc_currency']) ? &#8221; : $_POST['mc_currency']);<br />
$txn_id              = (empty($_POST['txn_id']) ? &#8221; : $_POST['txn_id']);<br />
$receiver_email      = (empty($_POST['receiver_email']) ? &#8221; : $_POST['receiver_email']);<br />
$receiver_id          = (empty($_POST['receiver_id']) ? &#8221; : $_POST['receiver_id']);<br />
$quantity              = (empty($_POST['quantity']) ? &#8221; : $_POST['quantity']);<br />
$num_cart_items      = (empty($_POST['num_cart_items']) ? &#8221; : $_POST['num_cart_items']);<br />
$payment_date          = (empty($_POST['payment_date']) ? &#8221; : $_POST['payment_date']);<br />
$first_name          = (empty($_POST['first_name']) ? &#8221; : $_POST['first_name']);<br />
$last_name              = (empty($_POST['last_name']) ? &#8221; : $_POST['last_name']);<br />
$payment_type          = (empty($_POST['payment_type']) ? &#8221; : $_POST['payment_type']);<br />
$payment_status      = (empty($_POST['payment_status']) ? &#8221; : $_POST['payment_status']);<br />
$payment_gross          = (empty($_POST['payment_gross']) ? &#8221; : $_POST['payment_gross']);<br />
$payment_fee          = (empty($_POST['payment_fee']) ? &#8221; : $_POST['payment_fee']);<br />
$settle_amount          = (empty($_POST['settle_amount']) ? &#8221; : $_POST['settle_amount']);<br />
$memo                  = (empty($_POST['memo']) ? &#8221; : $_POST['memo']);<br />
$payer_email          = (empty($_POST['payer_email']) ? &#8221; : $_POST['payer_email']);<br />
$txn_type              = (empty($_POST['txn_type']) ? &#8221; : $_POST['txn_type']);<br />
$payer_status          = (empty($_POST['payer_status']) ? &#8221; : $_POST['payer_status']);<br />
$address_street      = (empty($_POST['address_street']) ? &#8221; : $_POST['address_street']);<br />
$address_city          = (empty($_POST['address_city']) ? &#8221; : $_POST['address_city']);<br />
$address_state           = (empty($_POST['address_state']) ? &#8221; : $_POST['address_state']);<br />
$address_zip          = (empty($_POST['address_zip']) ? &#8221; : $_POST['address_zip']);<br />
$address_country      = (empty($_POST['address_country']) ? &#8221; : $_POST['address_country']);<br />
$address_status      = (empty($_POST['address_status']) ? &#8221; : $_POST['address_status']);<br />
$item_number          = (empty($_POST['item_number']) ? &#8221; : $_POST['item_number']);<br />
$tax                  = (empty($_POST['tax']) ? &#8221; : $_POST['tax']);<br />
$option_name1          = (empty($_POST['option_name1']) ? &#8221; : $_POST['option_name1']);<br />
$option_selection1      = (empty($_POST['option_selection1']) ? &#8221; : $_POST['option_selection1']);<br />
$option_name2          = (empty($_POST['option_name2']) ? &#8221; : $_POST['option_name2']);<br />
$option_selection2      = (empty($_POST['option_selection2']) ? &#8221; : $_POST['option_selection2']);<br />
$for_auction          = (empty($_POST['for_auction']) ? &#8221; : $_POST['for_auction']);<br />
$invoice              = (empty($_POST['invoice']) ? &#8221; : $_POST['invoice']);<br />
$custom              = (empty($_POST['custom']) ? &#8221; : $_POST['custom']);<br />
$notify_version      = (empty($_POST['notify_version']) ? &#8221; : $_POST['notify_version']);<br />
$verify_sign          = (empty($_POST['verify_sign']) ? &#8221; : $_POST['verify_sign']);<br />
$payer_business_name = (empty($_POST['payer_business_name']) ? &#8221; : $_POST['payer_business_name']);<br />
$payer_id              = (empty($_POST['payer_id']) ? &#8221; : $_POST['payer_id']);<br />
$mc_currency          = (empty($_POST['mc_currency']) ? &#8221; : $_POST['mc_currency']);<br />
$mc_fee              = (empty($_POST['mc_fee']) ? &#8221; : $_POST['mc_fee']);<br />
$exchange_rate          = (empty($_POST['exchange_rate']) ? &#8221; : $_POST['exchange_rate']);<br />
$settle_currency       = (empty($_POST['settle_currency']) ? &#8221; : $_POST['settle_currency']);<br />
$parent_txn_id       = (empty($_POST['parent_txn_id']) ? &#8221; : $_POST['parent_txn_id']);<br />
$pending_reason      = (empty($_POST['pending_reason']) ? &#8221; : $_POST['pending_reason']);<br />
$reason_code          = (empty($_POST['reason_code']) ? &#8221; : $_POST['reason_code']);</p>
]]></content:encoded>
	</item>
</channel>
</rss>

