<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Krishna Sunuwar &#187; Payment Gateway</title>
	<atom:link href="http://www.krishnasunuwar.com.np/tag/payment-gateway/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.krishnasunuwar.com.np</link>
	<description></description>
	<lastBuildDate>Fri, 03 Feb 2012 04:39:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Testing Credit Card Numbers</title>
		<link>http://www.krishnasunuwar.com.np/2012/02/testing-credit-card-numbers/</link>
		<comments>http://www.krishnasunuwar.com.np/2012/02/testing-credit-card-numbers/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 04:39:15 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Payment Gateway]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=687</guid>
		<description><![CDATA[Just in case you might have been searching around for the right image to use on your eCommerce web page or shopping cart, here are some images that might help. You can copy the Plug In HTML code directly into your webpage! Test credit card numbers and card prefixes are listed at the bottom of [...]]]></description>
			<content:encoded><![CDATA[<p>Just in case you might have been searching around for the right image to use on your eCommerce web page or shopping cart, here are some images that might help. You can copy the Plug In HTML code directly into your webpage! Test credit card numbers and card prefixes are listed at the bottom of the page!</p>
<p><strong>Testing Card type and number</strong></p>
<p>MasterCard: 5431111111111111<br />
MasterCard: 5399 9999 9999 9999 (ogone)<br />
Amex: 341111111111111<br />
Discover: 6011601160116611<br />
American Express (15 digits) 378282246310005<br />
American Express (15 digits) 371449635398431<br />
American Express Corporate (15 digits) 378734493671000<br />
Diners Club (14 digits) 30569309025904<br />
Diners Club (14 digits) 38520000023237<br />
Discover (16 digits) 6011111111111117<br />
Discover (16 digits) 6011000990139424<br />
JCB (16 digits) 3530111333300000<br />
JCB (16 digits) 3566002020360505<br />
MasterCard (16 digits) 5555555555554444<br />
MasterCard (16 digits) 5105105105105100<br />
Visa (16 digits) 4111111111111111<br />
Visa (16 digits) 4012888888881881<br />
Visa (13 digits) 4222222222222</p>
<p><strong>Card Format</strong></p>
<p>Visa: 13 or 16 numbers starting with 4<br />
MasterCard: 16 numbers starting with 5<br />
Discover:16 numbers starting with 6011<br />
AMEX:15 numbers starting with 34 or 37</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2012/02/testing-credit-card-numbers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iDEAL Advance PHP Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 05:55:58 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=341</guid>
		<description><![CDATA[iDEAL Advance PHP integration is not that tough but it will be tough when you miss documentation. Before you begin to write code, read &#8220;iDEAL_General_EN_v2.1.pdf&#8221;, Topic 3.4. Below is summery diagram. You should be aware of general configuration part before you can begin this portion of code. Read Topic 3.3 in &#8220;iDEAL_Advanced_PHP_EN_V2.2.pdf&#8221;. In brief it [...]]]></description>
			<content:encoded><![CDATA[<p>iDEAL Advance PHP integration is not that tough but it will be tough when you miss documentation. Before you begin to write code, read &#8220;iDEAL_General_EN_v2.1.pdf&#8221;, Topic 3.4. Below is summery diagram.<br />
<img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_advance_php.jpg" title="iDEAL Advance PHP Integration"></p>
<p>You should be aware of general configuration part before you can begin this portion of code. Read Topic 3.3 in &#8220;iDEAL_Advanced_PHP_EN_V2.2.pdf&#8221;.</p>
<p>In brief it works in following way:</p>
<ol>
<li>Make directory request (Get Bank list, Issuer list is what they called)</li>
<li>Make Transaction Request and redirected to iDEAL/bank)</li>
<li>Make Status Request (This is after iDEAL/bank redirect to webshop)</li>
</ol>
<p><strong>1) Directory Request</strong></p>
<p>Directory Request means you are fetching Issuer List (List of banks) from iDEAL. This is list of banks which are associated with iDEAL and making payment from these banks is possible. Below is code, how can you fetch Issuer List:</p>
<div class="geshi php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ideal_connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$ideal_connector</span><span class="sy0">-&gt;</span><span class="me1">GetIssuerList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">errorMessage</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorCode</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorMsg</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$consumerMessage</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span> </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$IssuerList</span> <span class="sy0">=&amp;</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getIssuerFullList</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>If you see line number 3, I have made little bit changes. Original iDEAL document has </p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span> <span class="sy0">!</span> <span class="re1">$response</span> <span class="br0">&#41;</span> <span class="br0">&#123;</span><span class="sy0">,</span></div>
</li>
</ol>
</div>
<p>There&#8217;s no way that $response is false on failure because $ideal_connector->GetIssuerList() returns ErrorRespose Object. So when error is returned by Get $ideal_connector->IssuerList(), you&#8217;ll encounter error in next line i.e. $response->getIssuerFullList() because ErrorResponse object do not have getIssuerFullList().</p>
<p>Once you fetch Issuer Lists (Banks), let end user select his/her bank. HTML code looks like below:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;form method=&quot;post&quot; action=&quot;&quot; id=&quot;form1&quot; name=&quot;form1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;td valign=&quot;top&quot; class=&quot;form-label&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;select name=&quot;bank&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;option value=&quot;&quot;&gt;Select Your Bank&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;?php foreach($banks as $bank): ?&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;option value=&quot;&lt;?php echo $bank-&gt;issuerID ?&gt;&quot;&gt;&lt;?php echo $bank-&gt;issuerName ?&gt;&lt;/option&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &lt;?php endforeach; ?&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;/select&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;&lt;/td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;&lt;td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;input class=&quot;btn&quot; type=&quot;submit&quot; name=&quot;submit2&quot; value=&quot;Make Your Payment&quot; id=&quot;submit2&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/td&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;</div>
</li>
</ol>
</div>
<p>Note: It is suggested to save issuer list in local cache and run DirectoryRequest query once in 24 hour.</p>
<p><strong>Transaction Request</strong><br />
End user will select banks (issuer is what they called) and submit form. Now you have to make Transaction request and redirect issuer&#8217;s website. Code looks like below</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$ideal_connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$ideal_connector</span><span class="sy0">-&gt;</span><span class="me1">RequestTransaction</span><span class="br0">&#40;</span><span class="re1">$issuerId</span><span class="sy0">,</span><span class="re1">$purchaseId</span><span class="sy0">,</span><span class="re1">$amount</span><span class="sy0">,</span><span class="re1">$description</span><span class="sy0">,</span><span class="re1">$entranceCode</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">transactionID</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$url</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getIssuerAuthenticationURL</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw3">header</span><span class="br0">&#40;</span><span class="st0">&quot;Location:&quot;</span><span class="sy0">.</span><span class="re1">$url</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>After this, end user login to his bank and make payment. On successful, iDEAL/bank redirect customer to webshop again (you have to define redirect page in config, they call it MerchantReturnURL).</p>
<p>Parameters for RequestTransaction():<br />
IssuerId: the ID of the issuer the consumer has selected from the pick list<br />
PurchaseId: the purchase number according to the online shop’s system<br />
Amount: the amount in whole cents (no decimals; 1 Euro = 100)<br />
Description: the description of the product<br />
EntranceCode: a code determined by the online shop with which the purchase can be<br />
authenticated upon redirection to the online shop (see section 4.2.2 for details).<br />
(optional) ExpirationPeriod: if different from the configured value.<br />
(optional) MerchantReturnURL: if different from the configured value.</p>
<p><strong>Status Request</strong><br />
When iDEAL/bank redirect end user to webshop, it will automatically add two parameters entranceCode and TransactionId. entranceCode is hold by ec variable and TransectionId is hold by trxid variable. So, you have TransactionId (trxid) in landing page, you should make status request. If you do not make status request, payment will not be guaranteed. Following is code to make status request:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$connector</span> <span class="sy0">=</span> <span class="kw2">new</span> iDEALConnector<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$transactionId</span> <span class="sy0">=</span> <span class="re1">$_GET</span><span class="br0">&#91;</span><span class="st0">&#39;trxid&#39;</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$response</span> <span class="sy0">=</span> <span class="re1">$connector</span><span class="sy0">-&gt;</span><span class="me1">RequestTransactionStatus</span><span class="br0">&#40;</span><span class="re1">$transactionId</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">errorMessage</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorCode</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorCode</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$errorMsg</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getErrorMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$consumerMessage</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerMessage</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="re1">$status</span> <span class="sy0">=&amp;</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getStatus</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span><span class="re1">$status</span> <span class="sy0">===</span> IDEAL_TX_STATUS_SUCCESS <span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerName</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerName</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerAccNumber</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerAccountNumber</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="re1">$consumerCity</span> <span class="sy0">=</span> <span class="re1">$response</span><span class="sy0">-&gt;</span><span class="me1">getConsumerCity</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>(Issue request can be made manually from iDEAL Dashboard as well).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-advance-php-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iDEAL Basic (ING Bank) Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 14:55:02 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=328</guid>
		<description><![CDATA[iDEAL Basic integration method is different from iDEAL Advance. Sumit Bankskota has provided code for basic integration, thanks Sumit. Below is complete code, try on your own: &#60;html&#62; &#60;head&#62; &#60;meta http-equiv=&#34;Content-Type&#34; content=&#34;text/html; charset=iso-8859-1&#34;&#62; &#60;/head&#62; &#60;body&#62; &#60;FORM METHOD=&#34;post&#34; ACTION=&#34;https://idealtest.secure-ing.com&#34; name=&#34;frm1&#34; id=&#34;frm1&#34;&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;merchantID&#34; value=&#34;xxxxxxx&#34; /&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;subID&#34; value=&#34;0&#34; /&#62; &#60;INPUT type=&#34;hidden&#34; NAME=&#34;amount&#34; VALUE=&#34;xxxxx&#34; /&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>iDEAL Basic integration method is different from iDEAL Advance. <a href="http://www.ersumit.com/">Sumit Bankskota</a> has provided code for basic integration, thanks Sumit. Below is complete code, try on your own:</p>
<div class="geshi no html">
<ol>
<li class="li1">
<div class="de1">&lt;html&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/head&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;FORM METHOD=&quot;post&quot; ACTION=&quot;https://idealtest.secure-ing.com&quot; name=&quot;frm1&quot; id=&quot;frm1&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;merchantID&quot; value=&quot;xxxxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;subID&quot; value=&quot;0&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;amount&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;purchaseID&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;language&quot; VALUE=&quot;nl&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;currency&quot; VALUE=&quot;EUR&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;description&quot; VALUE=&quot;iDEAL Basic purchase&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemNumber1&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemDescription1&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemQuantity1&quot; VALUE=&quot;xxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;itemPrice1&quot; VALUE=&quot;xxxxx&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;paymentType&quot; VALUE=&quot;ideal&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;INPUT type=&quot;hidden&quot; NAME=&quot;validUntil&quot; VALUE=&quot; 2009-01-01T12:00:00:0000Z&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;PSPID&quot; value=&quot;PSP-id&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;accepturl&quot; value=&quot;http://www.hosturl.nl/path/accept_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;declineurl&quot; value=&quot;http://www.hosturl.nl/path/decline_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;exceptionurl&quot; value=&quot;http://www.hosturl.nl/path/exception_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;cancelurl&quot; value=&quot;http://www.hosturl.nl/path/cancel_url.php&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;hidden&quot; name=&quot;homeurl&quot; value=&quot;http://www.hosturl.nl/home&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;input type=&quot;submit&quot; value=&quot;Bevestig bestelling&quot; id=&quot;submit2&quot; name=&quot;submit2&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/form&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/body&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/html&gt;</div>
</li>
</ol>
</div>
<p>Parameter values in hidden control are hypothetical (dummy). So you need to replace with right values.</p>
<p>For iDEAL Advance, click this <a href="http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/">link</a>.</p>
<p>If you have done for any other Bank or other way, let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iDEAL payment &#8211; ING Bank &#8211; iDEAL Advance Integration</title>
		<link>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/</link>
		<comments>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 10:13:27 +0000</pubDate>
		<dc:creator>Krish</dc:creator>
				<category><![CDATA[Payment Gateway]]></category>
		<category><![CDATA[iDEAL]]></category>
		<category><![CDATA[ING]]></category>

		<guid isPermaLink="false">http://www.krishnasunuwar.com.np/?p=302</guid>
		<description><![CDATA[It&#8217;s always not easy to work with payment gateway service as each gateway service has different of configuration options, parameters. Lastly, I found iDEAL as weired/tough. You will hardly find documentation in English. So, I thought share idea how I did configure iDEAL Advance using PHP (ING bank). In summery, it takes following steps to [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s always not easy to work with payment gateway service as each gateway service has different of configuration options, parameters. Lastly, I found iDEAL as weired/tough. You will hardly find documentation in English. So, I thought share idea how I did configure iDEAL Advance using PHP (ING bank).</p>
<p>In summery, it takes following steps to setup iDEAL Advance:</p>
<ol>
<li>Registration</li>
<li>Integration</li>
<li>Run mandatory test cases in iDEAL test environment</li>
<li>iDEAL approve test cases and contract (you should sign up contract)</li>
<li>Live account has to be activated (See below Mandatory Test)</li>
<li>So, your live sale can be done in iDEAL.</li>
</ol>
<p>Follow details steps below:</p>
<ol>
<li>Login to iDEAL/ING Dashboard (Given below are URL for dashboard)<br />
Test environment: https://idealtest.secure-ing.com<br />
Production environment: https://ideal.secure-ing.com<br />
<strong>Note</strong>: Merchant ID and Login name is same for both test and live. But password is different for live and test.</li>
<li>Once you login, first thing you need to go to Document link. There you can download documentation and Advance integration code. Documentation is available in English and Dutch.<br />
Important Downloads:<br />
a) <a href="http://www.krishnasunuwar.com.np/downloads/iDEAL_General_EN_v2.1.pdf">iDEAL General – Introduction and procedure</a> (Click on link to get manual)<br />
b) <a href="http://www.krishnasunuwar.com.np/downloads/iDEAL_Advanced_PHP_EN_V2.2.pdf">iDEAL Advanced Integration Manual PHP</a> (Click on link to get manual)<br />
c) iDEAL Advanced Integration Code PHP (Sorry,  no links, ups!!)<br />
<strong>Note:</strong> You should be aware about registration process. Look &#8220;Registration process (2)&#8221; in iDEAL General – Introduction and procedure<br />
<img class="alignnone" title="iDEAL Dashboard (before account is activated)" src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_dashboard.jpg" alt="" width="500" height="244" /></li>
<li>To integrate Advance iDEAL in PHP, follow instruction in &#8220;iDEAL Advanced Integration Manual PHP&#8221;, there are lot of steps you should follow carefully. In summery:<br />
1) Generate private key using openSSL<br />
2) Generate certificate using private key.<br />
3) Upload certificate to configuration (Login to iDEAL dashboard -&gt; Go to sign up process -&gt; Click on Configuration tab)<br />
4) Change params value in config.conf which available in /includes/security.<br />
5) Also you should edit iDEALConnector_config.inc.php if you move security folder then then default.</li>
<li>Upload scripts (PHP Advanced Code)</li>
<li>Run 6 tests in iDEAL test environment. Wait for iDEAL response on your test.  (See below Mandatory Test)</li>
<li>iDEAL has to set live account activate. Now your gateway is ready!!</li>
</ol>
<p><strong>Mandatory Test</strong>:</p>
<p>You should run mandatory test before you can set iDEAL live. Look &#8220;Registration process (2)&#8221; in iDEAL General – Introduction and procedure. It&#8217;s not easy to setup online store to configure to meet test suite requirement. Hence, you can use iDEAL Tester, which you can download from <a href="http://www.ideal-simulator.nl/ideal-professional-tester.html">http://www.ideal-simulator.nl/ideal-professional-tester.html</a>.</p>
<p>Once you download scripts, make changes on idealprofessional.cfg.php file which is located inside library folder. Upload scripts to server and access it http://&lt;host&gt;/ideal-professional-tester/index.php<br />
<img class="alignnone" title="iDEAL tester screen" src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_tester-1.jpg" alt="" width="500" height="420" /></p>
<p>You can confirm tests status from iDEAL dashboard.</p>
<ol>
<li>Login to Dashboard (test and live has different dashboard)</li>
<li>Click on Sign up Process</li>
<li>Click on Status (You&#8217;ll see following screen if test successes).
<p><div class="wp-caption alignnone" style="width: 510px"><img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_test_result.jpg" alt="iDEAL mandatory test results" width="500" height="218" /><p class="wp-caption-text">iDEAL mandatory test results</p></div></li>
<li>Once you finish test suits, iDEAL will activate live account. It may take several hours, so I suggest you to call their support dept. and ask them to activate (it speed up).</li>
<li>Once they activate your live account, your live dashboard looks different as given below.</li>
</ol>
<p><img src="http://i70.photobucket.com/albums/i88/s2krish/blog/ideal_live_activate.jpg" alt="iDEAL live dashboard (after activated)" /><br />
<strong>Note</strong>: You should run this test on same domain where your online store will resides.</p>
<p>Note: this post describe process how to integrate iDEAL Adanced (ING Bank) using PHP APIs.</p>
<p>Configuring iDEAL basic is very easy which works with post method by redirecting URL to their gateway.</p>
<p>If you have done for any other Bank or other way, let me know.</p>
<p><strong>Update</strong>: for iDEAL Basic click this <a href="http://www.krishnasunuwar.com.np/2010/03/ideal-basic-ing-bank-integration/">link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.krishnasunuwar.com.np/2010/03/ideal-payment-ing-bank-ideal-advance-integration/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

