Melakukan transaksi uji di akun stripe yang diaktifkan

Saya memiliki akun mandiri stripe yang diaktifkan dan menerima transaksi langsung dan terhubung ke akun platform stripe. Saya memberikan di bawah kode yang saya gunakan untuk menerima pembayaran langsung.

 \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"));

Saya ingin mengatur mode debug dalam kode saya yang akan menggunakan kunci tes stripe untuk menerima transaksi pengujian meskipun akun stripe mandiri dan platform diaktifkan dan dalam mode langsung. Saya ingin panggilan stripe yang harus saya gunakan saat melakukan debug daripada melakukan transaksi langsung. Maksud saya, bagaimana saya harus mengubah kode di atas dan menggunakan kunci uji ketika saya tiba-tiba ingin melakukan transaksi uji alih-alih transaksi langsung meskipun platform dan akun yang berdiri sendiri diaktifkan dan aktif?


person jai    schedule 12.06.2017    source sumber


Jawaban (1)


Apakah suatu transaksi diproses dalam mode uji coba atau mode langsung bergantung sepenuhnya pada rangkaian kunci API yang Anda gunakan. Jika Anda menggunakan kunci API pengujian, transaksi akan diproses dalam mode pengujian. Jika Anda menggunakan kunci API langsung, transaksi akan diproses dalam mode langsung.

Jadi yang perlu Anda lakukan adalah memutuskan kumpulan kunci mana yang akan Anda gunakan berdasarkan beberapa kondisi yang dapat Anda picu.

Pada dasarnya, Anda harus mengganti ini:

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

dengan sesuatu seperti ini:

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

Perlu diingat bahwa Anda juga perlu menggunakan kunci pengujian yang dapat dipublikasikan dalam kode frontend (untuk membuat token dengan Checkout atau Elemen) -- mencoba membuat tagihan dalam mode pengujian jika token dibuat dengan live kunci tidak akan berfungsi.

Dalam kode contoh yang Anda berikan, Anda membuat token dari kode backend Anda (melalui \Stripe\Token::create(...)). Artinya server Anda secara langsung menyediakan data kartu. Ini baik-baik saja saat pengujian, tetapi dalam mode langsung, token harus selalu dibuat di sisi depan, melalui Checkout atau Elemen. Jika tidak, Anda tidak lagi memenuhi syarat untuk PCI SAQ A dan harus melakukannya minta solusi Anda diaudit untuk kepatuhan PCI.

person Ywain    schedule 12.06.2017
comment
Bagaimana dengan header akun? Bisakah saya menggunakan header akun live yang sama? Maksud saya dalam panggilan stripe saya, apakah saya harus mengambil header akun pengujian dan mengganti array('stripe_account' =› live_account_header) dengan array('stripe_account' =› test_account_header) - person jai; 12.06.2017
comment
Tidak, Anda dapat mengeluarkan permintaan pengujian pada akun live, sehingga Anda dapat menggunakan ID akun yang sama dalam kedua kasus tersebut. - person Ywain; 12.06.2017