この記事の所要時間: 555

IMG_1141今日は保育園の月に一度の「お弁当デー」

ママが東京出張でいないのでパパが作るお約束・・・

もう起こさないといけない時間なのに余裕ぶっこいて写真撮影した

「たった一人の」株式会社ジーティーアイ さとう です。

こんな寝顔に顔寄せて嫌がられないのはいつまでかな・・・

ちょっと感慨深い(笑)

さて、本題・・・・

さて、2013年度末(3月)までの納品ラッシュが去り、5月当て込んでいた仕事がなくなってしまい・・・
それでも、依頼が数件ありなんとか通常の状態を保たせて頂いております。ジーティーアイです。

そろそろ、仕入れの時期だな・・・・

ということで、このたび定期課金出来るようになったWebPayをcURLで・・・をPHPでやるようにしたので参考までにソースを・・・・
直接WebPayの管理画面からはすぐできちゃいます・・・参考記事をどうぞ

WebPayの定期課金を作るPHP

cURLのところはモロサンプルを参考に作ってます。WebPayの資料参考にしてください。

ここですよ!→クレジットカード決済をもっとシンプルに・・・ WebPay

今回はキモの部分だけ作ってすぐ記事書いたっていう感じ(笑)
これから先長いのでとりあえず「出しとけ」状態です。

サーバーまたは開発環境でcURLが利用できることが大前提です。

下記コマンドで確認するか

php -i | grep curl

phpinfo() に cURL があるか確認して下さい。

では・・・

コードです。

<?php 

/**
 -- 顧客作成

定義
POST https://api.webpay.jp/v1/customers
リクエスト例

curl "https://api.webpay.jp/v1/customers" \
-u "test_secret_(自分のテスト環境の秘密鍵コードいれてね)": \
-d "card[number]=4242-4242-4242-4242" \
-d "card[exp_month]=11" \
-d "card[exp_year]=2014" \
-d "card[cvc]=123" \
-d "card[name]=KEI KUBO" \
-d "description=佐藤 毅
株式会社ジーティーアイ 代表取締役"
*/
$ch = curl_init("https://api.webpay.jp/v1/customers");	// URLセット
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');	// POSTリクエスト
curl_setopt($ch, CURLOPT_USERPWD, 'test_secret_(自分のテスト環境の秘密鍵コードいれてね)');	// 秘密鍵
curl_setopt($ch, CURLOPT_POSTFIELDS, array(
	'card[number]'=>'4242-4242-4242-4242', 
	'card[exp_month]'=>11, 
	'card[exp_year]'=>'2019',
	'card[cvc]'=>999,
	'card[name]'=>'DEMO USER',
	'description'=>'株式会社ジーティーアイ さとう たけし'
));

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);	// curl_exec()の結果を文字列で返却

$res = curl_exec($ch);

curl_close($ch);

/** 顧客IDゲット $res_data['id'] */
$res_data = json_decode($res);

/**
 -- 定期課金開始
curl "https://api.webpay.jp/v1/recursions" \
-u "test_secret_(自分のテスト環境の秘密鍵コードいれてね)": \
-d "amount=2980" \
-d "currency=jpy" \
-d "customer=cus_7xU9v76qZ6Widuh" \
-d "period=month" \
-d "description=ダイエットサプリメント"
*/

$ch2 = curl_init("https://api.webpay.jp/v1/recursions");	// URLセット
curl_setopt($ch2, CURLOPT_CUSTOMREQUEST, 'POST');	// POSTリクエスト
curl_setopt($ch2, CURLOPT_USERPWD, 'test_secret_(自分のテスト環境の秘密鍵コードいれてね)');	// 秘密鍵
curl_setopt($ch2, CURLOPT_POSTFIELDS, array(
	'amount'=>2980, 
	'currency'=>'jpy', 
	'customer'=>$res_data->id,
	'period'=>'month',
	'description'=>'ダイエットサプリメント'.date('Y_m_j')
));

curl_setopt($ch2, CURLOPT_RETURNTRANSFER, TRUE);	// curl_exec()の結果を文字列で返却

$res2 = curl_exec($ch2);

curl_close($ch2);

$res2_data = json_decode($res2);

print "<pre>";
var_dump($res2_data);
print "</pre>";
// 終了

※「test_secret_(自分のテスト環境の秘密鍵コードいれてね)」の部分は全てご自身のテストコードに置換してください。

とりあえずこのコードを index.php とかにして文字コードUTF-8で保存してアクセスすると
自分のWebPayに定期課金が作られます。
今回のソースはこの人が既存顧客かどうか確認しないでバンバン新規で作っちゃいます。
テスト環境でしないとこまっちゃうので、test_secret_〜〜にしてね。

これからこれを使って定期課金モジュール作るよ・・・の予定(笑)

・・・なんて中途半端な記事なんだ。

すんません。

お役に立てばなによりです。

※アイキャッチにWebPayのロゴを使用しています。不都合がございましたらご連絡ください。すぐに対応します。