2017-06-12 2 views
0

Ich habe ein Stripe Standalone-Konto, das aktiviert ist und Live-Transaktionen akzeptiert und mit einem Plattform-Stripe-Konto verbunden ist. Ich gebe unten den Code, den ich für die Annahme von Live-Zahlungen verwende.Erstellen von Testtransaktionen in einem aktivierten Stripe-Konto

\Stripe\Stripe::setApiKey("LIVE_PLATFORM_API_KEY"); 
$strtok = \Stripe\Token::create(
      array(
       "card" => array(
         "number" => $cardnumber, 
         "exp_month" => $cardexpmonth, 
         "exp_year" => $cardexpyear, 
         "cvc" => $creditcardcvv 
       ) 
       ), 
       array('stripe_account' => "live_account_header") 
      ); 
$strtoken = $strtok->id; 
$charge = \Stripe\Charge::create(array(
        'amount' => $amts, 
        'currency' => 'usd', 
        'application_fee' => $appfee, 
        'source' => $strtoken 
      ), array('stripe_account' => "live_account_header")); 

Ich möchte einen Debug-Modus in meinem Code einrichten, die die Streifentestschlüssel verwenden Testtransaktionen zu akzeptieren, auch wenn die beiden Streifen eigenständige und Plattform-Konten aktiviert und im Live-Modus. Ich möchte die Stripe-Aufrufe, die ich beim Debuggen verwenden sollte, anstatt Live-Transaktionen durchzuführen. Ich meine, wie sollte ich den oben genannten Code ändern und Testschlüssel verwenden, wenn ich plötzlich eine Testtransaktion statt einer Live-Transaktion durchführen möchte, obwohl sowohl die Plattform als auch das eigenständige Konto aktiviert sind und live sind?

Antwort

0

Ob eine Transaktion im Testmodus oder Live-Modus verarbeitet wird, hängt vollständig davon ab, welche API-Schlüssel Sie verwenden. Wenn Sie Ihre Test-API-Schlüssel verwenden, wird die Transaktion im Testmodus verarbeitet. Wenn Sie Ihre Live-API-Schlüssel verwenden, wird die Transaktion im Live-Modus verarbeitet.

Also, was Sie tun müssen, ist zu entscheiden, welche Reihe von Schlüsseln Sie basierend auf einer Bedingung, die Sie auslösen können, verwenden werden.

Grundsätzlich müssten Sie diese ersetzen:

\Stripe\Stripe::setApiKey("LIVE_PLATFORM_API_KEY"); 

mit etwas wie folgt aus:

if ($test_condition) { 
    \Stripe\Stripe::setApiKey("TEST_PLATFORM_API_KEY"); 
} else { 
    \Stripe\Stripe::setApiKey("LIVE_PLATFORM_API_KEY"); 
} 

Beachten Sie, dass Sie auch Ihre Test veröffentlichbare Schlüssel in Ihrem Frontend-Code verwenden müssen (zum Erstellen von Token mit Checkout oder Elements) - Versuchen, eine Gebühr im Testmodus zu erstellen, wenn das Token mit einem Live-Schlüssel erstellt wurde, funktioniert nicht.

In dem von Ihnen bereitgestellten Beispielcode erstellen Sie das Token aus Ihrem Back-End-Code (über \Stripe\Token::create(...)). Dies bedeutet, dass Ihr Server die Kartendaten direkt bereitstellt. Beim Testen ist das in Ordnung, aber im Live-Modus sollten Tokens immer auf der Vorderseite, über Checkout oder Elemente erstellt werden. Andernfalls wären Sie nicht mehr für PCI SAQ A berechtigt und müssten Ihre Lösung auf PCI-Compliance prüfen lassen.

+0

Was ist mit dem Konto-Header? Kann ich denselben Live-Konto-Header verwenden? Ich meine in meinem Streifen Anrufe muss ich irgendwie einen Test-Account-Header holen und array ('stripe_account' => "live_account_header") mit array ('stripe_account' => "test_account_header") – jai

+0

Nein ersetzen, Sie können Testanfragen für ein Live-Konto stellen, sodass Sie in beiden Fällen dieselbe Konto-ID verwenden können. – Ywain

Verwandte Themen