2016-08-22 13 views
1

を使用して日付支払いを送信しようとしましたが、token.createを使用して支払いが送信された日付をconsole.logにしようとしましたが、未定義を返します。私はどのように私は日付を取得することができたのだろうかと思っていた。ここでストライプ

app.post('/payments.html', function(req, res) { 
    var token = req.body.stripeToken; // Using Express 

// Create a charge: this will charge the user's card 
    var charge = stripe.charges.create({ 
     amount: 20000, // Amount in cents 
     currency: "usd", 
     source: token, 
     description: "Example charge" 
    }, function(err, charge) { 
      if (err && err.type === 'StripeCardError') { 
       // The card has been declined 
      } 
    }); 

    console.log(charge.amount); 
    stripe.customers.create({ 
     description: 'customer for..', 
     source: token 
    }), function(err, customer){ 
     console.log("error in creating customer" + err); 
    } 
    console.log(token.created); 
    res.sendFile(__dirname + '/views/payments.html'); 

    }); 

スクリプトここ

<script type="text/javascript"> 
      // Fill in your publishable key 
      Stripe.setPublishableKey('pk_test_SkainfjXuZvik6J2Sg5praOz'); 

      var stripeResponseHandler = function(status, response) { 
       var $form = $('#payment-form'); 

       if (response.error) { 
       // Show the errors on the form 
       $form.find('.payment-errors').text(response.error.message); 
       $form.find('button').prop('disabled', false); 
      } else { 
       // token contains id, last4, and card type 
       var token = response.id; 
       // Insert the token into the form so it gets submitted to the server 
       $form.append($('<input type="hidden" name="stripeToken" />').val(token)); 
       // and re-submit 
       $form.get(0).submit(); 
      } 
     }; 

     jQuery(function($) { 
      $('#payment-form').submit(function(e) { 
      var $form = $(this); 

       // Disable the submit button to prevent repeated clicks 
       $form.find('button').prop('disabled', true); 

       Stripe.card.createToken($form, stripeResponseHandler); 

       // Prevent the form from submitting with the default action 
       return false; 
      }); 
     }); 
     </script> 

は、あなたが全体のトークンオブジェクトを掲示していないことを確認する必要がありますが、お支払い情報を入力フォーム

<form action="" method="POST" id="payment-form"> 
        <span style="color:red;"class="payment-errors"></span> 
        <div class="form-row"> 
        <label> 
        <span>Name</span> 
        <input type="text" size="20" data-stripe="name"> 
        </label> 
        <label> 
        <span>Zip Code</span> 
        <input type="text" size="20" data-stripe="address_zip"> 
        </label> 
        </div> 
        <div class="form-row"> 
        <label> 
         <span>Card Number</span> 
         <input type="text" size="20" data-stripe="number"> 
        </label> 
       </div> 

       <div class="form-row"> 
       <label> 
        <span>Expiration (MM/YY)</span> 
        <input type="text" size="2" data-stripe="exp_month"> 
       </label> 
        <span>/</span> 
       <label> 
        <input type="text" size="2" data-stripe="exp_year"> 
       </label> 
      </div> 


      <div class="form-row"> 
      <label> 
       <span>CVC</span> 
       <input type="text" size="4" data-stripe="cvc"> 
      </label> 
     </div> 


     <input type="submit" class="submit" value="Submit Payment"> 
    </form> 

答えて

1

ですトークンIDだけです。

+0

は、クライアント側のコードを掲載 – srsxyz

+0

うん、ここにあるビット: 'VARトークン= response.id;' あなたは全体ではなく、トークンオブジェクトを送り返すことができます。文字列をフォームに追加するか、代わりにajax経由で投稿する必要があります。 また、料金のトークンからIDを取得するためにバックエンドコードを変更する必要があります。 – alwayslearning

+0

、ありがとう! – srsxyz

関連する問題