HPz6200

coiney php api サンプル コード

pre {
font-family: “courier new”, courier, monospace;
background-color: black;
word-wrap:break-word
width: 90%;
white-space: pre-wrap;
color: white;
line-height: auto;
padding: 10px;
}
@media screen and (max-width: 480px) {
pre {
font-size:12px;
width: 90%; /*画面サイズに合わせる*/
white-space: pre-wrap;
}
}

Coiney(コイニー)のAPIをPHPで呼び出す。

皆さんこんにちは! ネットでポップのウェブマスターをしているラビーズの”ジキル”です。

今日は、ネットでポップ が、サイトでクレジットカード情報を入力して、決済する仕組みが欲しいとのことだったので、
・決済サービスCoiney
を利用して、
おなじみのPHPスクリプトから、Coiney API を呼び出して、カード情報の入力画面を作成(ペイジ作成)
を試してみたいと思います。

コイニーサポートチームから、審査結果のお知らせ というEメールが届いているはずですが、そこに書かれている
「ログインメールアドレス」と「パスワード」でログインします。

管理画面の
Coineyペイジ > 開発者用設定
の画面を開くと、

シークレットのAPIキーが表示されます。
xx_xx_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx (安全の為表示していません)

これが必要になります。

サンプルソース
show_paymentUrl.php

<?PHP
/*
Coiney さんの指示
通信をすべて暗号化してください。https接続は必須です。
リクエスト時のパラメータ
https://github.com/Coiney-SDK/CoineyKit-Payge/blob/master/api/payments/create.md
エラー、レスポンス一覧
https://github.com/Coiney-SDK/CoineyKit-Payge/blob/master/api-spec/errors.md
テスト決済
現在テスト決済のシステムを準備中です。 < だそうです。(2019/5/15)
*/

// デバッグスイッチ
$debug = 0;

// APIのURLは共通のようでした
$url = 'https://api.coiney.io/api/v1/payments';

// 管理者としてログインした後、開発者用設定で表示される、シークレットAPIキー
$api_key = "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // ご自分のシークレットAPIキー
$ammount = 100.00; // 請求する金額を円で
// ポストするデータを配列に保存
$post_data = array();
$post_data['amount'] = $ammount; // 請求金額
$post_data['currency'] = "jpy"; // 通貨
$post_data['locale'] = "ja_JP"; // ロケール。カード情報入力画面の言語
$post_data['redirectUrl'] = "https://www.netdepop.com/thanks.html"; // 完了後に表示するページ
$post_data['webhookUrl'] = "https://xxxxxxxx.payge.co"; // 指定したwebhookURL
$post_data['method'] = "creditcard"; // 支払い方法
$post_data['subject'] = "【ネットでポップ】クレジットカード払い"; // カード情報入力画面のタイトル
$post_data['description'] = "ウェブサイトからの支払い"; // 適用
$post_data['remarks'] = "お支払い期日を過ぎますと自動的にキャンセルとなります。あらかじめご了承ください。"; // 備考
$post_data['metadata']['orderId'] = $order_serial; // オーダーID

$post_data_json = json_encode($post_data); // POST するデータを json に変換

if($debug){
echo "post_data ------------------------nn";
var_dump($post_data);
echo "post_data_json ------------------------nn";
echo $post_data_json;
}



// php の curl にてAPIを叩く
$ch=curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => $url, //
CURLOPT_FOLLOWLOCATION => 1, //
CURLOPT_RETURNTRANSFER => 1, // 結果を出力せずに値で返す
CURLOPT_MAXREDIRS => 10, //
CURLOPT_TIMEOUT => 30, //
CURLOPT_CUSTOMREQUEST => "POST", //
CURLOPT_POST => 1, //
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer " . $api_key,
"X-CoineyPayge-Version: 2016-10-25",
"Accept: application/json",
"Content-Type: application/json"
),
CURLOPT_POSTFIELDS => $post_data_json, // 上で用意したjson 文字列
));





// 実行
$response = curl_exec($ch); // json文字列で返される
$arr_response = json_decode($response, true); // jsonを配列に保存

if($debug){
$err = curl_error($ch); // エラーを取得する
$info = curl_getinfo($ch); // インフォを取得する

echo "nerror ------------------------nn";
var_dump($err);
echo "info ------------------------nn";
var_dump($info);
echo "response from Coiney ------------------------nn";
print_r($arr_response);
}


curl_close($ch); // ch を閉じる
// ここまでで Coiney からの返事がもらえた



/*
Coineyからのお返事による処理

支払いの状態 (ステータス一覧)
open 未払い
expired 期限切れ
paid 支払済み
refunded 売上取消・返品済み
cancelled 無効

*/

if($arr_response['status']=="open"){
//print("ステータスは: ".$arr_response['status']."
n");
?>

location.href = ""; // 入力画面へ転送

<?PHP
}else{
// htmlでエラーページを表示
?>




クレジットカード会社との交信に失敗しました。


ご注文は完了しておりますが、カードの決済はまだできておりません。


後ほど支払いのURLを担当者からお送りさせていただきます。


ご不便をおかけして申し訳ありません。





<?PHP
print("Unexpected status from Coiney: ".$arr_response['status']."
n");
print_r($arr_response);
print("Back");
exit;
}


exit;
?>

Coineyのカード情報入力ページが開けば成功です。

決済が成功した画面の見本
thanks.html





購入完了画面


購入が完了しました。




完了した決済はCoineyの
売上 > 売上一覧
から確認できます。

終わりに

こんな感じで簡単にペイジーの作成ができました。
Coineyは導入したが、注文ををもらってから、ペイジを作成するのが手間だ!と思っている方、是非試してみてください。
ラビーズでは、ウェブサイトのプログラミングのお手伝いも行なっています。1時間6千円で、この程度の依頼は2時間くらいです。

ネットでポップ ウェブマスターブログ
ポスター 無料 Coiney PHP サンプル コード 見本 API

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です