Stripe API在自己的

时间:2017-04-25 20:31:33

标签: php curl stripe-payments

我使用我创建的这个函数调用各种条带API:

    function api_stripe($api_type,$vars_array,$test_live)
    {

            if($api_type == 'createToken') $url_endpoint = 'https://api.stripe.com/v1/tokens';
            else if($api_type == 'createCharge') $url_endpoint = 'https://api.stripe.com/v1/charges';
            else if($api_type == 'updateCharge') 
            {
                $url_endpoint = 'https://api.stripe.com/v1/charges/'.$vars_array['charge_id'];
                unset($vars_array['charge_id']);
            }
            else if($api_type == 'captureCharge') 
            {
                $url_endpoint = 'https://api.stripe.com/v1/charges/'.$vars_array['charge_id'].'/capture';
                unset($vars_array['charge_id']);
            }
            else if($api_type == 'refundCharge') 
            {
                $url_endpoint = 'https://api.stripe.com/v1/refunds';
            }
            else if($api_type == 'createCustomer')
            {
                $url_endpoint = 'https://api.stripe.com/v1/customers';
            }

            if($test_live == 'test') $apiKey = 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxx'; //test
            else if($test_live == 'live') $apiKey = 'sk_live_xxxxxxxxxxxxxxxxxxxxxxxx'; //live

            $post_data = http_build_query($vars_array);

            $ch = curl_init();
            curl_setopt($ch, CURLOPT_TIMEOUT, 300);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer '.$apiKey));
            curl_setopt($ch, CURLOPT_URL, $url_endpoint);
            curl_setopt($ch, CURLOPT_POST, TRUE);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER,TRUE);
            $response = curl_exec($ch);
            curl_close($ch);

            return $response;

    }

除非我从一个名为“functions.php”的文件中调用,否则它会正常工作 - 然后它会变成一个乱七八糟的东西并且条带开始发送1000个webhook。虽然它只向我请求的页面返回1个响应(即https://www.example.com/functions.php)。

是否有理由从名为“functions.php”的文件中执行此操作(当它不从test.php或甚至functions2.php执行此操作时)。我是否发现了一个错误,或者这是否已知。

这是我在我的函数上运行的代码:

    $vars_array = array(
            "email" => "abcdefgxyz@gmail.com",
            "source" => array(
                        "name" => "testFirst2 testLast2",
                        "number" => "4242424242424242",
                        "exp_month" => "12",
                        "exp_year" => "2017",
                        "cvc" => "123",
                        "object" => "card"
                        )               
            );

    $createCustomer = api_stripe('createCustomer',$vars_array,'test');
    echo $createCustomer;

我还不敢尝试。条纹支持说代码很好:

  

根据这些“创建客户”电话的时间安排,您的代码会向Stripe发送3个单独的请求。

然而,当我查看他们的3个示例时,它是完全相同的时间戳 - 当我只访问该函数一次。

我没有看到调用自身的函数。我在函数外部创建$ vars_array,然后在调用它时将它们传递给函数。但它再次适用于除“functions.php”文件之外的任何文件。怪异。

有人可以证实这一点吗?我的代码是否正在做一些会使api_stripe函数递归的东西?

0 个答案:

没有答案