Metadata APIでオーダーと決済を紐付けよう

加盟店の皆様、大変長らくお待たせいたしました。ついに、待望のMetadata APIがご利用可能になりました!

これまで、加盟店データベース側で管理している顧客情報や注文内容と、Omiseデータベース側で処理される決済情報を統合には限界がありました。そのためOmiseでは、課金のdescriptionフィールドにアドホックでJSONを入れる方法を推奨してきました。

今回の改善では、Charge APIとCustomer APIにmetadataというキーを追加。これにより、そこに定義する最上階層のデータの型がJSONのハッシュであれば、あとは自由にJSONを定義できる仕様に変わっています。

小さな変化ではあるものの、バックエンド業務の様々なシーンに活用いただけます!

• 個別トランザクションに注文番号を挿入し、相互参照可能 • 課金オブジェクトに含まれた注文情報や出荷番号をOmiseダッシュボードから検索可能 • 経理部門への迅速な情報提供(フルフィルメント部門を待つ時間を短縮) • アプリケーションのデータベースとしてOmise APIを活用

それでは実際のソースコードを見ていきましょう。   PHPの例: 

<?php

$charge = OmiseCharge::create(array(
    'description' => 'Payment for Order #3947',
    'currency' => 'thb',
    'amount' => 10000,
    'card' => 'tokn_test_58307zpezucfvb6u1ty',
    'metadata' => array(
        'order_id' => '3947'
    )
));

JSONレスポンスの例: 

{
  "object": "charge",
  "description": "Payment for Order #3947",
  "metadata": {
    "order_id": "3947"
  },
  "...": "..."
}

いかがでしょうか。上述以外の活用事例や改善提案なども大歓迎です。ぜひ気軽にGitterのディスカッションに参加し、Omiseエンジニア達とつながってみてください。