我使用我创建的这个函数调用各种条带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函数递归的东西?