我在我的应用程序中使用Stripe.我想编写一个集成测试,用于放置支票,检查Stripe是否创建了付款.我正在使用Stripe.js.
在我的测试中,我需要一个卡片令牌来执行测试费用.通常,此令牌将在客户端生成带有stripe.js并在请求中发送以执行计费.由于这只是服务器端测试,我可以通过某种方式在测试中生成令牌吗?
作为参考,测试将是这样的(使用PHP,但原理是相同的):
/** @test **/ public function it_creates_a_charge() { $order = factory(Order::class)->create(); $stripe_token = Stripe::generateToken([ 'card' => '4242424242424242' 'exp' => '04/2017', 'cvc' => '123' ]); // does not exist afaik $response = $this->post('charges/store', [ 'stripe_token' => $stripe_token, 'order_id' => $order->id, //etc ]); // assertions... }
基本上我在问Stripe API中是否有允许生成服务器端令牌的东西.
Stripe提供API调用以从服务器创建令牌:
\Stripe\Stripe::setApiKey("sk_test_BQokikJOvBiI2HlWgH4olfQ2"); \Stripe\Token::create(array( "card" => array( "number" => "4242424242424242", "exp_month" => 1, "exp_year" => 2017, "cvc" => "314" ) ));
您不需要使用伪造的信用卡创建令牌以进行测试.Stripe现在为此提供了一个预制令牌列表:
Stripe docs:测试卡号和令牌