<?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>カワイデスドットコム｜河合徳光 &#187; PHP</title>
	<atom:link href="http://kawaidesu.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://kawaidesu.com</link>
	<description>経営のコツここなりと気づいた価値は百万両。</description>
	<lastBuildDate>Tue, 24 Mar 2026 14:54:02 +0000</lastBuildDate>
	<language>ja</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.8.41</generator>
	<item>
		<title>LINE PayのAPIをPHPで実装してみた</title>
		<link>http://kawaidesu.com/php/line-pay/</link>
		<comments>http://kawaidesu.com/php/line-pay/#comments</comments>
		<pubDate>Sun, 01 May 2016 08:29:28 +0000</pubDate>
		<dc:creator><![CDATA[digibe]]></dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kawaidesu.com/?p=506</guid>
		<description><![CDATA[LINEが「LINE Pay」サービスの提供を開始した。 LINE Payは、銀行やコンビニでチャージできる、プリペイド方式の決済システムだ。詳しくは、LINEの公式ページに説明されている。 もはや日本の若者でLINEを [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>LINEが「LINE Pay」サービスの提供を開始した。</p>
<p>LINE Payは、銀行やコンビニでチャージできる、プリペイド方式の決済システムだ。詳しくは、<a href="http://line.me/ja/pay" target="_blank">LINEの公式ページ</a>に説明されている。</p>
<p>もはや日本の若者でLINEを知らない人はいないだろう。だからLINE Payの広がりを見越して、自社サイトに導入してみた。</p>
<p>開発言語はPHPで、その実装サンプルを紹介する。<br />
<span id="more-506"></span></p>
<h3>事前準備</h3>
<p>最初にLINEに書類を提出し、審査に通過する必要がある。</p>
<p>審査に通過したら管理画面にログインし、[連動キー管理]から[Channel ID]と[Channel Secret Key]を取得しておく。</p>
<p><a href="http://kawaidesu.com/wp-content/uploads/linepay_key.png"><img src="http://kawaidesu.com/wp-content/uploads/linepay_key-300x209.png" alt="linepay_key" class="aligncenter size-medium wp-image-510" /></a></p>
<p>他に[決済サーバIP管理]から、自社サーバーのIPアドレスを登録しておく必要があるが、詳しくはLINEPayの導入マニュアルを参照のこと。</p>
<h3>実装サンプル</h3>
<p>以下、PHPの実装サンプル。必要最低限のオプションを設定し、APIを呼び出している。APIは、[request]と[confirm]の２つだけで、とてもシンプルだ。</p>
<p>ソースコードの[Channel ID]と[Channel Secret Key]を、先ほど取得したキーに書き換えておくこと。あとサンドボックスで試験する場合は、接続URLを適宜修正しておく。</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php

if(!$_GET['transactionId']) {
  // ----------------------------------- 決済reserve
  $header = array(
    'Content-Type: application/json; charset=UTF-8',
    'X-LINE-ChannelId: 1461962654',
    'X-LINE-ChannelSecret: ed0e387b51243d52c7cf26a9a215cc26',
  );
  $postData = array(
    'productName' =&gt; &quot;Test Item&quot;,
    'amount' =&gt; 800,
    'currency' =&gt; &quot;JPY&quot;,
    'confirmUrl' =&gt; &quot;https://hogehoge.com/linepay.php&quot;,
    'orderId' =&gt; &quot;00001&quot;,
  );

  $ch = curl_init(&quot;https://api-pay.line.me/v2/payments/request&quot;);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
  $rs = json_decode(curl_exec($ch), true);
  curl_close($ch);

  if($rs['returnCode'] == &quot;0000&quot;) {
    header(&quot;Location: {$rs['info']['paymentUrl']['web']}&quot;);
  }
  else {
    echo &quot;エラー番号：{$rs['returnCode']}&quot;;
  }
}
else {
  // ----------------------------------- 決済confirm
  $header = array(
    'Content-Type: application/json; charset=UTF-8',
    'X-LINE-ChannelId: 1461962654',
    'X-LINE-ChannelSecret: ed0e387b51243d52c7cf26a9a215cc26',
  );
  $postData = array(
    'amount' =&gt; 800,
    'currency' =&gt; &quot;JPY&quot;,
  );

  $ch = curl_init(&quot;https://api-pay.line.me/v2/payments/{$_GET['transactionId']}/confirm&quot;);
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
  $rs = json_decode(curl_exec($ch), true);
  curl_close($ch);

  if($rs['returnCode'] == &quot;0000&quot;) {
    echo &quot;決済成功：{$rs['returnCode']}&quot;;
  }
  else {
    echo &quot;エラー番号：{$rs['returnCode']}&quot;;
  }
}
?&gt;
</pre>
<p>ポイントは、request APIを叩くと、戻りのURLに引数[transactionId]が追加されることだろう。</p>
<p>あとなぜか、商品名を日本語にするとエラーになってしまう…。しかしこれは今後、改善されるのかも知れない。</p>
<h3>導入した感想</h3>
<p>LINEPayは前払い方式なので、代金回収の手間がなくて良い。手数料についても、導入から２年間（ただし月商100万円以下）なら無料と、太っ腹だ。</p>
<p>銀行振込と違って夜間でも即日決済できるし、振込金額を間違えることもない。お客様を特定するのも簡単だ。</p>
<p>ただ認知度が低いためか、まだまだ利用は少ないのが現実だ。</p>
<p>zozo town（ゾゾタウン）も導入しているようだし、これから広がってくれればありがたいサービスだと思う。</p>
]]></content:encoded>
			<wfw:commentRss>http://kawaidesu.com/php/line-pay/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XSERVERで500 Internal Server Errorが出た時の解決方法</title>
		<link>http://kawaidesu.com/php/xserver-500-error/</link>
		<comments>http://kawaidesu.com/php/xserver-500-error/#comments</comments>
		<pubDate>Fri, 04 Apr 2014 01:48:39 +0000</pubDate>
		<dc:creator><![CDATA[digibe]]></dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://kawaidesu.com/?p=73</guid>
		<description><![CDATA[エックスサーバーは割と大量のアクセスがあっても落ちることなく、コントロールパネルも使いやすいサーバーだと思う。 サポートに連絡すればすぐに対応してくれるし、sakuraサーバーといい勝負。 そんなエックスサーバーだけど、 [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>エックスサーバーは割と大量のアクセスがあっても落ちることなく、コントロールパネルも使いやすいサーバーだと思う。</p>
<p>サポートに連絡すればすぐに対応してくれるし、sakuraサーバーといい勝負。</p>
<p>そんなエックスサーバーだけど、設置しておいたPHPが突然「500 Internal Server Error」を起こした。なんにも触ってないのに…。</p>
<p>でも解決したのでそのやり方をメモしておく。<br />
<span id="more-73"></span><br />
これがエックスサーバーの500エラーの画面。よく見ると解決方法が書いてある。</p>
<p><a href="http://kawaidesu.com/wp-content/uploads/500_internal_server_error.png"><img class="aligncenter size-thumbnail wp-image-74" alt="500_internal_server_error" src="http://kawaidesu.com/wp-content/uploads/500_internal_server_error-300x232.png" /></a></p>
<p>500エラーが常に発生する場合は、</p>
<ul>
<li>CGIのパーミッション設定に誤りがある</li>
<li>CGIのソースコードに問題がある</li>
<li>.htaccessの記述に誤りがある</li>
</ul>
<p>ことを確認するみたい。</p>
<p>具体的な確認方法は<a href="https://www.xserver.ne.jp/support/faq/faq_service_php.php">エックスサーバーのよくある質問</a>に書かれてる。</p>
<p>この部分ですね。</p>
<blockquote><p><span style="color: #808080;">Q.PHPを設置すると「500 Internal Server Error」が表示されます。</span></p>
<p><span style="color: #808080;">A.ご利用いただいているプログラムでエラーが発生している可能性があります。</span></p>
<p><span style="color: #808080;">【考えられる要因】</span><br />
<span style="color: #808080;"> PHPを設置しているディレクトリが755または705で設定されていない</span><br />
<span style="color: #808080;"> PHPのパーミッションが755, 705, 644, 604のいずれかで設定されていない</span><br />
<span style="color: #808080;"> プログラム側の記述に誤りがある</span><br />
<span style="color: #808080;"> なお、同時接続数などが影響し、リソース制限がかかっている可能性もあります。</span><br />
<span style="color: #808080;"> サーバーパネル「ログファイル」よりエラーログをご確認ください。</span><br />
<span style="color: #808080;"> ご不明な場合は、メールサポートまでご相談下さい。</span></p></blockquote>
<p>今回のエラーはプログラムを設置・変更してないし、断続的に500エラーが発生していたので、CGIの負荷が高い（プロセスが多数起動）が原因かと。</p>
<p>それを確認するにはログファイルを確認せよとのことなので、エックスサーバーのコントロールパネルからエラーログを取得してみた。</p>
<p><a href="http://kawaidesu.com/wp-content/uploads/xserver-log.png"><img class="aligncenter size-thumbnail wp-image-75" alt="xserver-log" src="http://kawaidesu.com/wp-content/uploads/xserver-log-300x191.png" /></a></p>
<p>ここで複数のサーバーを使っている場合は、500エラーが発生しているサーバーに切り替えておくことに注意。</p>
<p>さてログをチェックしてみると、やっぱりリソース不足だって書かれてた。具体的には下記の文言。</p>
<pre class="brush: plain; title: ; notranslate">setuid() failed: Resource temporarily unavailable</pre>
<p>エックスサーバーのよくある質問では、この場合、メールサポートに連絡するように書かれてたけど、その間500エラーが起こっていてサーバー全体のサービスが停止しアクセスできないのは痛い。</p>
<p>なのでこれを自力で直す。まずは<a href="https://www.xserver.ne.jp/manual/man_server_ssh.php">マニュアルを参考にエックスサーバーにssh接続</a>する。</p>
<p>次に「ps ax | grep <span style="color: red;">hogehoge</span>」コマンドを実行。<span style="color: red;">hogehoge</span>の部分は、例えばhoge.xsrv.jpなら「ps ax | grep hoge」となる。</p>
<p>実行中のプロセス一覧が表示されたら、「kill -9 12345」コマンドでプロセスを止める。12345の部分は上記psコマンドで得られたPIDを指定すること。</p>
<p>これで「500 Internal Server Error」は表示されないはず。</p>
<p>ここまで読んでちょっと何言ってるか分からないと思ったら、素直にエックスサーバーのメールサポートに連絡した方が早いですよ。</p>
]]></content:encoded>
			<wfw:commentRss>http://kawaidesu.com/php/xserver-500-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
