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を増やしていけばいいのかな?

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