Autonomous Databaseでは、Stripeに登録された顧客や製品などを一覧するビューが提供されています。
https://docs.oracle.com/en/cloud/paas/autonomous-database/adbsa/stripe-autonomous-database.html
以前にStripeを使う記事を書いたことがありStripeのアカウントが作成済みだったため、動作を確認してみました。
Stripeには以下の2つの商品が登録されています。
以下より、実施した作業について紹介します。
Oracle APEXのワークスペース・スキーマはWKSP_APEXDEVとします。ワークスペース・スキーマが異なる場合は、使用しているワークスペース・スキーマの名前に置き換えてください。
マニュアルの手順に従って作業を行います。
最初にAPEXのワークスペース・スキーマにネットワークACLを追加して、Stripeへのアクセスを許可します。principal_nameにワークスペース・スキーマWKSP_APEXDEVを指定します。
BEGIN
DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
host => 'stripe.com',
ace => xs$ace_type(privilege_list => xs$name_list('http'),
principal_name => 'WKSP_APEXDEV',
principal_type => xs_acl.ptype_db)
);
END;
/
管理者ユーザーADMINでデータベース・アクションに接続し、SQLワークシートより実行します。
GRANT READ on STRIPE_PRODUCTS to WKSP_APEXDEV;
Autonomous Databaseでは、STRIPE_ACCOUNTS、STRIPE_COUPONS、STRIPE_CUSTOMERS、STRIPE_INVOICES、STRIPE_PLANS、STRIPE_PRODUCTS、STRIPE_SUBSCRIPTIONSといったビューが提供されています。READ権限は、これらのビューそれぞれに付与する必要があります。
管理者ユーザーADMINでの作業は完了です。
アプリケーション作成ウィザードを起動し、空のアプリケーションを作成します。名前はStripe Productsとします。
対話モード・レポートのリージョンを作成します。
ソースの表名として、STRIPE_PRODUCTSを設定します。
以上でアプケーションを実行します。
クリデンシャルにアクセスができない、といったエラーが発生します。
ワークスペース・スキーマWKSP_APEXDEVに、Stripeへのアクセスで使用するクリデンシャルMY_STRIPE_CREDを作成します。
引数usernameはStripeのユーザ名(通常メールアドレス)、passwordには、シークレットキーを指定します。
BEGIN
DBMS_CLOUD.CREATE_CREDENTIAL(
credential_name => 'MY_STRIPE_CRED',
username => 'Stripeのユーザー名',
password => 'シークレットキー' );
END;
/
作成されたクリデンシャルを、ビューUSER_CREDENTIALSより確認します。
select * from user_credentials where credential_name = 'MY_STRIPE_CRED';
アプリケーション定義のセキュリティのデータベース・セッションの初期化PL/SQLコードに以下を記述します。
begin
execute immediate 'alter session set default_credential = ''WKSP_APEXDEV.MY_STRIPE_CRED''';
end;
簡単なアプリケーションですが、今回作成したアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/stripe-products.zip
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完