ทำธุรกรรมทดสอบในบัญชีแถบที่เปิดใช้งาน

ฉันมีบัญชี Stripe แบบสแตนด์อโลนที่เปิดใช้งานและยอมรับธุรกรรมจริงและเชื่อมต่อกับบัญชี Platform Strip ฉันกำลังให้รหัสด้านล่างที่ฉันใช้สำหรับรับการชำระเงินสด

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

ฉันต้องการตั้งค่าโหมดแก้ไขข้อบกพร่องในโค้ดของฉันซึ่งจะใช้คีย์การทดสอบแถบเพื่อยอมรับธุรกรรมทดสอบ แม้ว่าทั้งบัญชีแพลตฟอร์มและสแตนด์อโลนของแถบจะเปิดใช้งานและอยู่ในโหมดใช้งานจริงก็ตาม ฉันต้องการการโทรแบบแถบที่ฉันควรใช้เมื่อฉันกำลังแก้ไขจุดบกพร่องแทนที่จะทำธุรกรรมแบบเรียลไทม์ ฉันหมายถึงว่าฉันจะเปลี่ยนโค้ดด้านบนและใช้คีย์ทดสอบได้อย่างไร ในเมื่อฉันต้องการทำธุรกรรมทดสอบแทนการทำธุรกรรมจริงโดยฉับพลัน แม้ว่าทั้งแพลตฟอร์มและบัญชีสแตนด์อโลนจะเปิดใช้งานและใช้งานอยู่ก็ตาม


person jai    schedule 12.06.2017    source แหล่งที่มา


คำตอบ (1)


ไม่ว่าธุรกรรมจะได้รับการประมวลผลในโหมดทดสอบหรือโหมดจริงนั้นขึ้นอยู่กับชุดคีย์ API ที่คุณใช้ หากคุณใช้คีย์ API ทดสอบ ธุรกรรมจะได้รับการประมวลผลในโหมดทดสอบ หากคุณใช้คีย์ API แบบสด ธุรกรรมจะได้รับการประมวลผลในโหมดจริง

ดังนั้นสิ่งที่คุณต้องทำคือตัดสินใจว่าจะใช้ชุดคีย์ใดตามเงื่อนไขบางประการที่คุณสามารถทริกเกอร์ได้

โดยพื้นฐานแล้ว คุณจะต้องแทนที่สิ่งนี้:

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

ด้วยสิ่งนี้:

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

โปรดทราบว่าคุณยังต้องใช้คีย์ทดสอบที่เผยแพร่ได้ในโค้ดส่วนหน้าของคุณ (สำหรับการสร้างโทเค็นด้วย ชำระเงิน หรือ องค์ประกอบ) -- พยายามสร้างการชาร์จในโหมดทดสอบหากโทเค็นถูกสร้างขึ้นด้วยการถ่ายทอดสด คีย์จะไม่ทำงาน

ในโค้ดตัวอย่างที่คุณระบุ คุณกำลังสร้างโทเค็นจากโค้ดแบ็กเอนด์ของคุณ (ผ่าน \Stripe\Token::create(...)) ซึ่งหมายความว่าเซิร์ฟเวอร์ของคุณให้ข้อมูลการ์ดโดยตรง ซึ่งเป็นเรื่องปกติเมื่อทำการทดสอบ แต่ในโหมดใช้งานจริง โทเค็นควรถูกสร้างขึ้นที่ส่วนหน้าเสมอ ผ่านทางการชำระเงินหรือองค์ประกอบ มิฉะนั้น คุณจะไม่มีสิทธิ์สำหรับ PCI SAQ A อีกต่อไป และจะต้อง ให้โซลูชันของคุณได้รับการตรวจสอบการปฏิบัติตามข้อกำหนดของ PCI

person Ywain    schedule 12.06.2017
comment
แล้วส่วนหัวของบัญชีล่ะ? ฉันสามารถใช้ส่วนหัวของบัญชีจริงเดียวกันได้หรือไม่? ฉันหมายถึงในการเรียกแถบของฉันฉันต้องดึงส่วนหัวของบัญชีทดสอบหรือไม่และแทนที่ array('stripe_account' =› live_account_header) ด้วย array('stripe_account' =› test_account_header) - person jai; 12.06.2017
comment
ไม่ได้ คุณสามารถส่งคำขอทดสอบในบัญชีจริงได้ ดังนั้นคุณสามารถใช้รหัสบัญชีเดียวกันในทั้งสองกรณีได้ - person Ywain; 12.06.2017