決済システムSTRIPE導入手順

paypalをはじめ、PAY.jp、stripe、omiseなど多様な決済サービスが提供されています。

今回、stripeの導入を備忘録として投稿。

インターネットビジネスのためのオンライン支払い処理 - Stripe
インターネットビジネスのオンライン支払い処理。Stripe は、不正防止や定期支払い管理に対応し、あらゆるサイズのオンラインビジネス向けのコマースを支援する支払い API スイートです。Stripe の決済プラットフォームを使用して支払いをオンラインで受け入れ処理し、使い易いコマースソリューションを実現しましょう。
Stripe API reference
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.

 

  1. https://github.com/stripe/stripe-php/releases より、stripe-php-6.4.1.zipを入手。
  2. 導入サイト内にlibというディレクトリを作成し、stripe-php-6.4.1.zipを解凍してリネームせずにそのまま設置。(今回はstripeを稼働させるディレクトリ内に設置。そのディレクトリ名を「stripe」とする)
  3. stripe内の主要ファイルは2つ。構成は以下の通り。
example.com
  |
  |- stripe
    |
    |- index.php
    |
    |- checkout.php
    |
    |- lib
      |- stripe-php-6.4.1

■ index.phpの中身

<form action=”checkout.php” method=”POST”>
<script src=”https://checkout.stripe.com/checkout.js” class=”stripe-button”
data-key=”pk_test_*****************************”
data-amount=”{$price}”
data-currency=”JPY”
data-locale=”ja”
data-name=”ショップ名”
data-description=”サービスプラン名”
data-image=”https://stripe.com/img/documentation/checkout/marketplace.png”
data-zip-code=”true”
data-shippingAddress=”false”
data-label=”送信ボタン名”>
</script>
<INPUT type=”hidden” name=”amount” value=”{$price}”>
</form>

■ checkout.phpの中身
<?php
require_once( dirname(__FILE__).’/lib/stripe-php-6.4.1/init.php’);
// Set your secret key: remember to change this to your live secret key in production
\Stripe\Stripe::setApiKey(“sk_test_****************************”);
// Token is created using Stripe.js or Checkout!
// Get the payment token submitted by the form:
$token = $_POST[‘stripeToken’];
$email = $_POST[‘stripeEmail’];
$amount = $_POST[“amount”];
// フォームから情報を取得:
try {
$charge = \Stripe\Charge::create(array(
“amount” => $amount,
“currency” => “jpy”,
“source” => $token,
“description” => “商品名”,
));
}catch (\Stripe\Error\Card $e) {
// 決済できなかったときの処理
die(‘決済が完了しませんでした’);
}
// 自動返信メール
mb_language(“Japanese”);
mb_internal_encoding(“UTF-8”);
$title = “自動返信メールタイトル”;
$content = $token;
$from_name = “送信者名”;
$from_addr = ***@***.com;
$from_name_enc = mb_encode_mimeheader($from_name, “ISO-2022-JP”);
$from = $from_name_enc . “<” . $from_addr . “>”;
$header = “From: ” . $from . “\n”;
$header = $header . “Reply-To: ” . $from;
//to user send mail
if(mb_send_mail($email,$title, $content, $header, “-f” .$from_addr)){
// echo “メールを送信しました”;
}
else{
// echo “メールの送信に失敗しました”;
};
// 管理者宛メール
$title_me = “管理者宛メールタイトル”;
$from_me = “送信元となるメールアドレス”;
$content_me = “ここに管理者宛メールの本文を記載。改行したいときは \n でできます。”;
if(mb_send_mail($from_me,$title_me, $content_me, $header, “-f” .$from_addr)){
echo “メールを送信しました”;
} else {
echo “メールの送信に失敗しました”;
};
// サンキューページへリダイレクト
header(‘Location: https://’);
exit;
?>

コメント

タイトルとURLをコピーしました