PHP

PHPのデバッグ

PHPのデバッグといえば、
var_dumpでブラウザー上にデータを表示して、
値を確認しながら、という原始的な方法から、

今では、Xdebugを使うのが、当たりなんですが、
未だに、原始的な方法を使っております。

「学習コストをかけても、見合う収穫がある」

はずなんですが、
どうも新しいことを覚えるのは、億劫になっておりますが、
そんな中、良い方法を見つけました。

***

  1. function error_logで、debug.logに、変数を保存し、
  2. SSHで接続したターミナルで、tailf -f debug.logで監視。

都度都度、error_logを書くのも面倒なので、

function var_dump2($log, $file = 'debug.log') {
	if (DEBUG_MODE === true or $_SESSION['customer']['customer_id'] == 1)
		var_dump($log, $file);
}

本環境でも、ブラウザーに表示されずに、
デバッグ出来るようになりました。

 

-

phpでwebhookを受け取る@omise.co

現在、弊社の主力商品であるASPシステムを

維持費がなく、手数料が安い、
omise.coに移行します。

***

当時は、今使っている決済会社しかなかったのと、
omise.coが日本上陸初年度だったこともあり、
信頼感に欠けるため、客様に否定され、使用することが出来なかったのですが、

 

ECCUBE 2.13を使っているので、プラグインも用意されているので、
※3.x系は未対応
通常の決済では、このプラグインだけで十分ですが、
決済完了後に、別途メールを送信するため、

omise.co のダッシュボードにある「webhooks」を使い、
キックバックで、リアクションをもらい、
メールを送信します。

データは、POSTで送られ、JSON型であることは、
サポートに書かれている通り。

https://www.omise.co/api-webhooks

で、POSTされたデーターを見たいんだけど、
var_dump($_REQUEST)
としても、何も表示されず、1日格闘。

今日は、土曜日ということもあって、問い合わせも出来ず。

参考資料は、

だけ。

しかもあるのは、RubyとGoogleAppsScriptのサンプルだけ。
ほしいのは、PHP

 

php リクエストボディ json

ご存知の方はの方が多いと思うが、「JSON型はPOSTに値を含んでいない」らしく、
不具合ではなく、別に格納されていることに気づき、
調べてところ、

$json = file_get_contents(‘php ://input’);

要は、無知なだけだった・・・

あとは、配列に戻して、受注番号などを元に、
メールを送信するだけ。

$_ = json_decode($json, true);

 

既に、「変更したらこんなにお得!」なんて、
大風呂敷広げちゃったものだから、もうヒヤヒヤものでしたが、

あとは、申請して審査を待つだけ。

 

残る課題は、keyに入っている値。

クレジットの新規決済のときは、「charge.create」だけで良さそうだが、

charge.complete
課金が完了した時 (3Dセキュア、アリペイ、及びインターネットバンキング利用時)charge.complete 課金が完了した時 (3Dセキュア、アリペイ、及びインターネットバンキング利用時)

>>https://www.omise.co/ja/api-webhooks

とあり、

switch ($_[‘key’]) :
case ‘charge.create’:
/* なんか処理 */
endswitch;

の、caseを増やしていけばいいのかな?

-