2016-05-08 12 views
0

Ich möchte PHP-Variable in Streifen übergeben, aber sie zeigen Fehler fehlende Param Menge.passing php varible in Streifen charg

Hier ist mein Code Ich bekomme diesen Betrag von der vorherigen Seite und möchte Menge in diesem Code Variable übergeben, aber ich suche im Netz sie sagten Pass nur Cent-Wert. Gibt es eine Lösung Menge durch Variable übergeben i Wert wollen dynamisch passieren nicht statisch, wie ist es möglich,

$amountvalue = '123'; 
    try { 
     if (empty($_POST['street']) || empty($_POST['city']) || empty($_POST['zip'])) 
      throw new Exception("Fill out all required fields."); 
     if (!isset($_POST['stripeToken'])) 
      throw new Exception("The Stripe Token was not generated correctly"); 
     Stripe_Charge::create(array("amount" => $amountvalue, 
            "currency" => "aud", 
            "card" => $_POST['stripeToken'], 
            "description" => $_POST['email'])); 
     $success = '<div class="alert alert-success"> 
        <strong>Success!</strong> Your payment was successful. 
        </div>'; 
     } 
     catch (Exception $e) { 
     $error = '<div class="alert alert-danger"> 
        <strong>Error!</strong> '.$e->getMessage().' 
        </div>'; 
     } 

Aber es scheint, Streifen wird nicht außer dieser Variablen. es setzt eine ‚Fehlende erforderlich param: Menge‘ Fehler auf der Seite nur Sie will eine tatsächliche ganze Zahl wie ‚1234‘

enter image description here

+0

Also was ist deine Frage? – RiggsFolly

+0

Haben Sie versucht, '$ amountvalue = 123;' – RiggsFolly

+0

ich möchte nur varible in – flower

Antwort

0

Wenn nach Ihnen, die Stripe_Charge akzeptieren :: create() Statische Methode will nur numerische Daten und nicht String; dann können Sie auch einfach zu Numerische Daten füttern, etwa so:

<?php 
     // THIS IS EXACTLY THE SAME CODE YOU SUPPLIED ABOVE WITH JUST A SIMPLE CHANGE: 
     // THIS TIME WE ARE USING CENTS RATHER TO MAKE IT EASIER. 
     $amountvalue = '123'; 
     try { 
      if (empty($_POST['street']) || empty($_POST['city']) || empty($_POST['zip'])) 
       throw new Exception("Fill out all required fields."); 
      if (!isset($_POST['stripeToken'])) 
       throw new Exception("The Stripe Token was not generated correctly"); 
      // NOTICE THAT THE ONLY CHANGE HERE IS TO WRAP THE $amountvalue INSIDE OF intval() 
      // THIS CONVERTS THAT $amountvalue TO AN INTEGER, 
      // REGARDLESS OF WHETHER IT IS DYNAMIC OR HARD-CODED AS IT IN THIS CASE. 
      // NOTICE ALSO THAT WE ARE MULTIPLYING THE PASSED AMOUNT BY 100 
      // THAT IS CONVERTING THE $amountvalue TO CENTS... 
      Stripe_Charge::create(array("amount"  => intval($amountvalue)*100, 
             "currency" => "aud", 
             "card"  => $_POST['stripeToken'], 
             "description" => $_POST['email'])); 
      $success = '<div class="alert alert-success"> 
         <strong>Success!</strong> Your payment was successful. 
         </div>'; 
     } 
     catch (Exception $e) { 
      $error = '<div class="alert alert-danger"> 
         <strong>Error!</strong> '.$e->getMessage().' 
         </div>'; 
     } 

Streifen erfordert, dass Sie eine Quelle Parametermit dem Kreditkartendaten wie so passieren:

\Stripe\Charge::create(array(
     "amount" => 400, 
     "currency" => "usd", 
     // YOU'RE NOT PASSING THIS source ARRAY PARAMETER... 
     // YOU'RE PASSING JUST card INSTEAD... PROBABLY THE CREDIT-CARD NR. ONLY 
     "source" => array(
     "number" => "4242424242424242", 
     "exp_month" => 5, 
     "exp_year" => 2017, 
     "cvc" => "314" 
    ), 
     "description" => "Charge for [email protected]" 
    )); 

Referenz: https://stripe.com/us/features

Wenn Ihre Funktion ist wirklich NUMMER HUNG RY, wird es mit dieser kleinen Änderung Lächeln gibt ... ;-)

Prost & Good Luck ....

+0

wieder ich fand Fehler – flower

+0

Fehler! Ungültige positive ganze Zahl – flower

+0

@flower Ich habe den Code bearbeitet, diesmal mit Cents statt ... Vielleicht möchten Sie versuchen, wenn Sie ... – Poiz

0

Das Problem scheint nicht die Menge zu sein, aber die Daten, die Sie in Ihrem Pass erstellen Funktion. Schauen Sie sich diesen Code:

<?php 

     // THIS IS EXACTLY THE SAME CODE YOU SUPPLIED ABOVE WITH JUST A SIMPLE CHANGE: 
     // THIS TIME WE ARE USING CENTS RATHER TO MAKE IT EASIER. 
     $amountvalue = '123'; 
     try { 
      if (empty($_POST['street']) || empty($_POST['city']) || empty($_POST['zip'])) 
       throw new Exception("Fill out all required fields."); 
      if (!isset($_POST['stripeToken'])) 
       throw new Exception("The Stripe Token was not generated correctly"); 

      Stripe_Charge::create(array("amount"  => intval($amountvalue)*100, 
             "currency"  => "aud", 
             //HERE WAS THE ISSUE: 
             'source'  => array(   
              "number" => $_POST['stripeToken'], 
              "exp_month" => $_POST['expiry_month'], // GET THE CORRESPONDING POST VALUE FOR EXPIRY MONTH 
              "exp_year" => $_POST['expiry_year'], // GET THE CORRESPONDING POST VALUE FOR EXPIRY MONTH 
              "cvc"  => $_POST['cvc']   // GET THE CORRESPONDING POST VALUE FOR EXPIRY MONTH 
             ), 
             // REMOVE THIS ENTRY: "card" 
             // "card"   => $_POST['stripeToken'], 
             "description" => $_POST['email'])); 

      $success = '<div class="alert alert-success"> 
         <strong>Success!</strong> Your payment was successful. 
         </div>'; 
     } 
     catch (Exception $e) { 
      $error = '<div class="alert alert-danger"> 
         <strong>Error!</strong> '.$e->getMessage().' 
         </div>'; 
     } 

Sie müssen nur einen Weg zu bekommen und Pass in der Credit-Card Informationen: Kreditkartennummer, Verfallsmonat, Verfall Jahr und CVC. Ich glaube das würde dein Problem lösen ...