2017-11-29 6 views
0

オンライン注文用の支払いゲートウェイシステムを含む電子商取引アプリケーションを構築しています。以下は、私たちが使用するテクノロジースタックです。Razorpay FirebaseとAngularとの統合4

  • 角度の4/5
  • Firebase [Firestore]

我々は、以下の方法でそれを実現し、このに関していかなる適切な文書が存在しないので。

app.component.ts

export class AppComponent { 
    rzp1: any; 
    title = 'app'; 
    options = { 
    'key': environment.payment_key, 
    'amount': '2000', // 2000 paise = INR 20 
    'name': 'Merchant Name', 
    'description': 'Purchase Description', 
    'image': '/your_logo.png', 
    'handler': function(response) { 
     alert(response.razorpay_payment_id); 
    }, 
    'prefill': { 
     'name': 'Harshil Mathur', 
     'email': '[email protected]' 
    }, 
    'notes': { 
     'address': 'Hello World' 
    }, 
    'theme': { 
     'color': '#F37254' 
    } 
    }; 

    constructor(private winRef: WindowRefService) { 
    } 
    public initPay(): void { 
    this.rzp1 = new this.winRef.nativeWindow.Razorpay(this.options); 
    this.rzp1.open(); 
    } 
} 

app.component.html

<button id="rzp-button1" (click)="initPay();">Pay</button> 

は、これは単なるテスト目的のために行われました。 Firebaseチームが提案したようにStripe Payment Gatewayを見ましたが、Stripeはインドにまだサポートを提供しておらず、主な事業はインドで行われているため、これを使用することはできません。

私たちはRazorPayを選択しました。 this postthis documentationの助けを借りて、我々は我々のシステムに統合することができましたが、我々は、我々は、環境変数を経由してpayment_keyを公開するので、これはこれを行うには、安全な方法ではありません感じます。私たちはそのファイアベースからバックエンドをあまり支配しません。

これをFirebaseシステムで実装するにはどうすればよいでしょうか?どうすれば今よりも安全にすることができますか?

答えて

2

上記のキー変数は、Razorpay checkout docsの「Key Id」です。これは公開変数であり、各アカウントに固有のものです。

しかし、残りのサーバー間APIを使用するには、決して公開してはいけない秘密を保持するRazorpay Key Secretを使用する必要があります。

Razorpay Authenticationドキュメントからの引用:キャプチャ、返金、前回の支払いの詳細情報を取得するよう

すべてのサーバー側の要求するユーザー名とパスワードなどの重要な秘密などの主要-IDを使用して、基本的な認証で認証する必要があります。

httpsにリクエストを送信:// $ KEYID:[email protected]

あなたのキーの秘密は、パスワードのようなものです。クライアント側の要求には絶対に使用しないでください。

免責事項:私はまあRazorpay

+0

で働いて、私はrazorpay上のものの作品についてのある程度の知識を得ました。 1つの疑問は残っています.RazopPayを介してチェックアウトが行われた後、私たちが**支払いをキャプチャした後にのみ、支払いは私達の口座から引き落とされますか? –

+1

はい、支払いを取り払った後にのみ引き落とされます。または、[Orders API](https://docs.razorpay.com/v1/page/orders)を使用して自動キャプチャを有効にすることもできます。 – Nemo

+1

素晴らしい説明をいただきありがとうございます。 –