2017-11-28 12 views
0

私はストライプを作成するときに私はidempotency_keyを追加するだけで充電が発生するはずですが、問題はエラーメッセージです.HTMLフォームでの表示はあまりにも技術的です。ユーザーに自分のメッセージを表示したいのですがそのドキュメント番目のストライプjsメッセージを上書きする方法は?

私のPHPコード

Stripe::setApiKey('sk_test_something'); 
    $StripeError = ""; 
    try { 
     \Stripe\Charge::create(array(
      "amount" => 44 * 100, 
      "currency" => "usd", 
      "source" => $request->stripeToken, // obtained with Stripe.js 
      "description" => "Charge ticket", 
      "metadata" => array("order_id" => "67ewe35") 
     ), array(

       "idempotency_key" => "45sss423refsd", 
      ) 
     ); 
    } catch (\Stripe\Error\RateLimit $e) { 
     $StripeError .= $e->getMessage() . "\n"; 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 
    } catch (\Stripe\Error\InvalidRequest $e) { 
     $StripeError .= $e->getMessage() . "\n"; 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 
    } catch (\Stripe\Error\Authentication $e) { 
     $StripeError .= $e->getMessage() . "\n"; 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 
    } catch (\Stripe\Error\ApiConnection $e) { 
     $StripeError .= $e->getMessage() . "\n"; 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 
    } catch (\Stripe\Error\Base $e) { 
     $StripeError .= $e->getMessage(); 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 
    } catch (\Exception $e) { 
     $StripeError .= $e->getMessage() . "\n"; 
     return redirect()->route('user.tickets.pay')->with('error', $StripeError); 

JSコード

Stripe.setPublishableKey('pk_test_something'); 

    var $form = $('#checkout-form'); 

    $form.submit(function (event) { 
     $('#charge-error').addClass('hidden'); 
     $form.find('button').prop('disabled', true); 
     Stripe.card.createToken({ 
      number: $('#debit_card').val(), 
      cvc: $('#card_cvc').val(), 
      exp_month: $('#card_expiry_month').val(), 
      exp_year: $('#card_expiry_year').val(), 
      name: $('#card_holder_name').val() 
     }, stripeResponseHandler 

     ); 
     return false; 
    }); 

    function stripeResponseHandler(status, response) { 
        if (response.error) { 
      $('#charge-error').removeClass('hidden'); 
      $('#charge-error').text(response.error.message); 

      $form.find('button').prop('disabled', false); 
     } else { 
      var token = response.id; 
      $form.append($('<input type="hidden" name="stripeToken"/>').val(token)); 

      // Submit the form: 
      $form.get(0).submit(); 

}

EYはこのことを示しますが、私はストライプへの要求が失敗した場合、応答は代わりに次の形式のものであろう、それを https://stripe.com/docs/stripe-js/v2

を実装することができますかわからない:

{ 
    error: { 
    type: "invalid_request_error", // String identifier of the type of error 
    message: "Invalid routing number", // String description of the error 
    param: "bank_account" // Optional string identifier of the offending parameter. 
    } 
} 

メッセージHTMLにフォームはこれです 冪等要求のキーは、最初に使用されたのと同じパラメーターでのみ使用できます。別のリクエストを実行する場合は、 '35423refsd'以外のキーを使用してみてください。

は、私はそれ

答えて

0

あなたはすべての\Stripe\Error\InvalidRequestの例外のエラーメッセージ自体をチェックする必要があると思いますので、具体的なエラーの種類やコードは、このためにありませんに上書きします。

これは素晴らしい考えではありませんが、エラーメッセージは警告なしに変更される可能性があります。最後に試行した料金を把握し、既に請求しようとしていることを知っている注文に対して別のソーストークンを使用して新しい請求作成リクエストを送信しない方が良いかもしれません。

関連する問題