2013-05-05 15 views
7

私は、ユーザーが音楽ショーのチケットを販売できるウェブアプリケーションを構築中です。チケット購入者と扇動者の間の支払いを処理するために、私はStripeを使用します。 基本的に、ショーの扇動者は自分のショーのページを自分のアプリケーションに作成し、ユーザーはこのショーのチケットを購入することができます。ストライプ:パブリッシュ可能なAPIキーとシークレットAPIキーの検証

ショーを作成するには、ショーの名前、ショーの日付、ショーが行われる場所、再生されるバンドなどが記入されます。このフォームでは、公開可能な秘密のストライプキー。私のアプリは、これらのトークンの両方を使用してクレジットカート情報(クライアント側)を取得し、支払いを処理します(サーバー側)。

問題は、show instigatorsが有効で既存のストライプキーを提供していることを確認します。私は、show instigatorsが有効なStripeキーを提供していなかったため、ユーザーが支払いエラーに遭遇してしまわないようにしたいと思います。

質問: 公開鍵と秘密鍵が有効で既存のものであることを確認するにはどうすればよいですか?これを達成するための最良の戦略は何ですか?ありがとう!

答えて

0

キーを検証するために具体的に行うことができる文書化されたAPI呼び出しについては気づきません。

パートナーに有効なクレジットカードを提示し、ストライプキーを検証するために、カードに$ 0.50のチャージを行い、即座に払い戻すように指示してください。

フォームの検証の一環として、両方のキーが指定されている場合は、カードトークンを作成するために必要なすべてのデータが含まれているsubmit a hidden formcreate card token response handlerの応答を調べて、公開可能な鍵が有効かどうかを判断できるはずです。

カードトークンを含むストライプサーバーから正常に応答が返ってくる場合は、submit a test chargeを右折して$ 0.50(最低額)にしてください。

ストライプの例外をすべて正しくキャッチしていることを確認してください。私は無効な秘密鍵を信じて、あなたはStripe_InvalidRequestErrorをキャッチする必要があります。例外がスローされた場合、ユーザーに報告することができます。

エラーが発生しない場合、請求が行われます。パートナーに請求したくないので、ストライプレスポンスからチャージIDをキャプチャしてすぐにrefund the chargeとしたいと思うでしょう。

+0

シンプルでクリーンな説明。ありがとう、たくさんの友達!このソリューションは有効ですが、Strip Connect https://stripe.com/docs/connectが見つかりました。 APIキーを自分で管理するよりはるかに安全で簡単です。 – spg

8

ありがとうございました!

公開可能な鍵を検証するには、cURLを使用して新しいトークンをストライプする必要があります。 指定されたキーが無効な場合、応答には「無効なAPIキーが提供されました」というエラーメッセージが含まれます。あなたの秘密鍵を検証するための

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, "https://api.stripe.com/v1/tokens"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "card[number]=4242424242424242&card[exp_month]=12&card[exp_year]=2017&card[cvc]=123"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_USERPWD, $publishableKey . ":"); 

$response = json_decode(curl_exec($ch),true); 

if(curl_errno($ch)){ 
    echo 'Error:' . curl_error($ch); 
} 
curl_close ($ch); 

if(substr($response["error"]["message"],0, 24) == "Invalid API Key provided"){ 
    echo "Invalid API Key provided"; 
} 

同じ考え:ここ

はPHPで書かれた例です。

+0

私はそのエンドポイントにヒットしたときに、「認識できないリクエストURL(GET:/ v1 /トークン)」というメッセージを受け取ります。 https://stripe.com/docsを参照するか、https://support.stripe.com/でお手伝いしてください。「 –

+2

@AdamParkin/v1/tokensはGET要求ではなくPOSTのみを受け付けます。 'ますcurl_setopt($ chを、CURLOPT_POST、真)'すぎ – Niall

+0

ポスト $のURLで作業していない=「https://api.stripe.com/v1/tokens?key='.$publishableKey;。 "エラー" : "タイプ": "invalid_request_error"、 "メッセージ": "トークンを作成するには、カード、顧客、piiデータ、銀行口座のいずれかを指定する必要があります。" – Savoo