<?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>perlとMysqlでCGI &#38; サーバ管理 漏れ的メモ &#187; 決済</title>
	<atom:link href="http://perl.no-tubo.net/tag/%e6%b1%ba%e6%b8%88/feed/" rel="self" type="application/rss+xml" />
	<link>http://perl.no-tubo.net</link>
	<description>perl＆MySQLでCGIプログラミング。ウェブ運営の小技。鯖管メモもちょっとだけ。</description>
	<lastBuildDate>Fri, 10 Sep 2010 00:38:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PerlでPayPal エクスプレスチェックアウトAPIのLandingPageオプションを使う</title>
		<link>http://perl.no-tubo.net/2010/03/30/perl%e3%81%a7paypal-%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%82%b9%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%a2%e3%82%a6%e3%83%88api%e3%81%aelandingpage%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7/</link>
		<comments>http://perl.no-tubo.net/2010/03/30/perl%e3%81%a7paypal-%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%82%b9%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%a2%e3%82%a6%e3%83%88api%e3%81%aelandingpage%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 23:58:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PayPal]]></category>
		<category><![CDATA[perlモジュール]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[クレジットカード決済]]></category>
		<category><![CDATA[決済]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=415</guid>
		<description><![CDATA[Perlモジュール Business::PayPal::API
PayPalのAPIを使う時は Business::PayPal::API というモジュールが便利。
先日のエントリー PayPal利用時の決済フローを考え [...]]]></description>
			<content:encoded><![CDATA[<h2>Perlモジュール Business::PayPal::API</h2>
<p>PayPalのAPIを使う時は Business::PayPal::API というモジュールが便利。</p>
<p>先日のエントリー <a href="http://perl.no-tubo.net/2010/03/29/paypal利用時の決済フローを考える/">PayPal利用時の決済フローを考える</a> でLandingPageオプションの事を書いたのですが、Business::PayPal::API で実装するとそのままでは利用出来ないので、Business::PayPal::API::ExpressCheckout のソースを変更する必要があります。</p>
<p>PayPalの英語版APIの解説書(PDF)にはLandingPageの記載が無いようでしたので日本独自の仕様なのでしょうか？？変更方法は簡単です。<br />
パスは自分の環境ですと<br />
/usr/lib/perl5/site_perl/5.8.5/Business/PayPal/API/ExpressCheckout.pm でした。</p>
<h2>変更方法</h2>
<p>Business::PayPal::API::ExpressCheckoutの21行目付近に、</p>
<pre>my %types = ( Token                     =&gt; 'ebl:ExpressCheckoutTokenType',
		  OrderTotal                =&gt; 'cc:BasicAmountType',
		  currencyID                =&gt; '',
		  MaxAmount                 =&gt; 'cc:BasicAmountType',
		  OrderDescription          =&gt; 'xs:string',
		  Custom                    =&gt; 'xs:string',
		  InvoiceID                 =&gt; 'xs:string',
		  ReturnURL                 =&gt; 'xs:string',
		  CancelURL                 =&gt; 'xs:string',
		  Address                   =&gt; 'ebl:AddressType',
		  ReqConfirmShipping        =&gt; 'xs:string',
		  NoShipping                =&gt; 'xs:string',
		  AddressOverride           =&gt; 'xs:string',
		  LocaleCode                =&gt; 'xs:string',
		  PageStyle                 =&gt; 'xs:string',
		  'cpp-header-image'        =&gt; 'xs:string',
		  'cpp-header-border-color' =&gt; 'xs:string',
		  'cpp-header-back-color'   =&gt; 'xs:string',
		  'cpp-payflow-color'       =&gt; 'xs:string',
		  PaymentAction             =&gt; '',
		  BuyerEmail                =&gt; 'ebl:EmailAddressType' );</pre>
<p>というハッシュの定義があるのでそこに1項目追加するだけです。<br />
以下の様に追記します。</p>
<pre>my %types = ( Token                     =&gt; 'ebl:ExpressCheckoutTokenType',
		  OrderTotal                =&gt; 'cc:BasicAmountType',
		  currencyID                =&gt; '',
		  MaxAmount                 =&gt; 'cc:BasicAmountType',
		  OrderDescription          =&gt; 'xs:string',
		  Custom                    =&gt; 'xs:string',
		  InvoiceID                 =&gt; 'xs:string',
		  ReturnURL                 =&gt; 'xs:string',
		  CancelURL                 =&gt; 'xs:string',
		  Address                   =&gt; 'ebl:AddressType',
		  ReqConfirmShipping        =&gt; 'xs:string',
		  NoShipping                =&gt; 'xs:string',
		  AddressOverride           =&gt; 'xs:string',
		  LocaleCode                =&gt; 'xs:string',
		  PageStyle                 =&gt; 'xs:string',
		  'cpp-header-image'        =&gt; 'xs:string',
		  'cpp-header-border-color' =&gt; 'xs:string',
		  'cpp-header-back-color'   =&gt; 'xs:string',
		  'cpp-payflow-color'       =&gt; 'xs:string',
		  PaymentAction             =&gt; '',
		  BuyerEmail                =&gt; 'ebl:EmailAddressType',
		  <span style="color: #ff6600;">LandingPage               =&gt; ''</span> );</pre>
<p>これでLandingPageをBillingにした際にクレジットカード情報入力フォームが最初に表示される様になります。</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2010/03/30/perl%e3%81%a7paypal-%e3%82%a8%e3%82%af%e3%82%b9%e3%83%97%e3%83%ac%e3%82%b9%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%82%a2%e3%82%a6%e3%83%88api%e3%81%aelandingpage%e3%82%aa%e3%83%97%e3%82%b7%e3%83%a7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PayPal sandboxでの環境設定</title>
		<link>http://perl.no-tubo.net/2009/12/16/paypal-sandbox%e3%81%a7%e3%81%ae%e7%92%b0%e5%a2%83%e8%a8%ad%e5%ae%9a/</link>
		<comments>http://perl.no-tubo.net/2009/12/16/paypal-sandbox%e3%81%a7%e3%81%ae%e7%92%b0%e5%a2%83%e8%a8%ad%e5%ae%9a/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 01:13:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PayPal]]></category>
		<category><![CDATA[sandbox]]></category>
		<category><![CDATA[クレジットカード]]></category>
		<category><![CDATA[決済]]></category>

		<guid isPermaLink="false">http://perl.no-tubo.net/?p=293</guid>
		<description><![CDATA[IPN（即時支払い通知）のシステム構築
以前作ったsandboxでのテスト環境を使って、別の事業を構築する為のテストを行ったらエラーに悩まされた。
IPNで通知される状態が
payment_status=Pending
 [...]]]></description>
			<content:encoded><![CDATA[<h1>IPN（即時支払い通知）のシステム構築</h1>
<p>以前作ったsandboxでのテスト環境を使って、別の事業を構築する為のテストを行ったらエラーに悩まされた。</p>
<p>IPNで通知される状態が</p>
<pre>payment_status=Pending
pending_reason=paymentreview</pre>
<p>となってしまう。悩んだあげく、受取人のアカウント設定がおかしいのに気付く。<br />
前にいろいろいじったアカウントを受取人に設定したせいかも。<br />
とりあえず変更してみる。</p>
<h2>主要通貨を変更</h2>
<ol>
<li>Profile -&gt; Financial InformationのCurrency Balances から</li>
<li>セレクトボックス（Select new currency）から Japanese Yen を選択し、Add Currencyボタンで追加する</li>
<li>追加された一覧の Japanese Yen のラジオボタンと選択し、Make Primaryボタンを押す。</li>
</ol>
<h2>ウェブ ペイメントの設定</h2>
<p>Selling Preferences -&gt; Website Payment Preferences から行う。</p>
<p>各項目は以下の通り。</p>
<h5><span style="color: #000080;">Auto Return for Website Payments</span></h5>
<p>Auto Return: Off<br />
Return URL: 無し<br />
自動復帰はフォームパラメーターで渡せるのでOff。<br />
事業が１つしか無い場合を除き自動復帰URLをケースによって変えたい場合があるので。</p>
<h5><span style="color: #000080;">Payment Data Transfer (optional)</span></h5>
<p>Payment Data Transfer: Off<br />
これもフォームで渡せるので。</p>
<h5><span style="color: #000080;">Encrypted Website Payments</span></h5>
<p>Block Non-encrypted Website Payment: Off<br />
フォームパラメータの暗号化（SSLではない）されていない場合も受け取るようにする。</p>
<h5><span style="color: #000080;">PayPal Account Optional</span></h5>
<p>PayPal Account Optional: On<br />
これが Off だとPayPalアカウントを持っていないと決済出来ない。<br />
持っていない場合、PayPalへの登録が必須となってしまう。</p>
<h5><span style="color: #000080;">Contact Telephone Number</span></h5>
<p>Contact Telephone: Off</p>
<h5><span style="color: #000080;">Express Checkout Settings</span></h5>
<p>Support giropay and bank transfer payments: No</p>
<p>とりあえず設定はしてみたものの、IPNで返されるパラメーターは<br />
payment_status=Pending<br />
pending_reason=paymentreview<br />
のままなので、テストではPendingの場合はエラーとしないで（当然 payment_statusもCompletedにならない）処理するしかないか？？</p>
]]></content:encoded>
			<wfw:commentRss>http://perl.no-tubo.net/2009/12/16/paypal-sandbox%e3%81%a7%e3%81%ae%e7%92%b0%e5%a2%83%e8%a8%ad%e5%ae%9a/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
