Php 在没有JS的情况下执行条带事务以检索令牌
我试图在不使用Javascript的情况下执行条带事务。可能是cURL,但我无法使用v2api来理解头部Php 在没有JS的情况下执行条带事务以检索令牌,php,api,curl,stripe-payments,Php,Api,Curl,Stripe Payments,我试图在不使用Javascript的情况下执行条带事务。可能是cURL,但我无法使用v2api来理解头部 <form action="" method="POST" id="payment-form"> <span class="payment-errors"></span> <div class="form-row"> <label> <span>Card Number</span>
<form action="" method="POST" id="payment-form">
<span class="payment-errors"></span>
<div class="form-row">
<label>
<span>Card Number</span>
<input type="text" size="20" data-stripe="number"/>
</label>
</div>
<div class="form-row">
<label>
<span>CVC</span>
<input type="text" size="4" data-stripe="cvc"/>
</label>
</div>
<div class="form-row">
<label>
<span>Expiration (MM/YYYY)</span>
<input type="text" size="2" data-stripe="exp-month"/>
</label>
<span> / </span>
<input type="text" size="4" data-stripe="exp-year"/>
</div>
<button type="submit">Submit Payment</button>
</form>
<?php
require '../stripe-php/init.php';
//this next line is very wrong
$post = 'client_secret=['sk_07C5ukIdqx'].'&grant_type=authorization_code&code='.$_GET['code'];
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $system['stipe']['token_url']);
curl_setopt($ch,CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
$decode = json_decode($result);
\Stripe\Stripe::setApiKey("my_secret");
\Stripe\Charge::create(array(
"amount" => 500,
"currency" => "usd",
"source" => $decode[2], // I am totally guessing the value will be in element #2
"description" => "Charge for test@example.com"
));
?>
卡号
CVC
有效期(年月日)
/
付款
当使用Stripe.js
时,Stripe不要求您的服务器与PCI兼容
如果您有一个接受信用卡数据的web表单,则希望通过Stripe创建卡令牌。信用卡信息永远不会通过网络发送到您的服务器。这就是为什么代码中的表单字段没有name
属性(不提交无名称字段)这是件好事。
如果您坚持不使用stripe.js,那么
您提供的源必须是一个令牌(如Stripe.js返回的令牌),或者一个包含用户信用卡详细信息的关联数组
删除stripe.js
,在表单上添加一些name
属性,并使用Charge::create()
方法,而不使用前面提到的所有内容
我必须提到的是,如果我不清楚使信用卡处理变得极其简单的API的基本原理,我会非常担心我让信用卡数据接触我的服务器会给自己带来多大的潜在诉讼。在使用Stripe.js时,Stripe不要求您的服务器符合PCI标准
如果您有一个接受信用卡数据的web表单,则希望通过Stripe创建卡令牌。信用卡信息永远不会通过网络发送到您的服务器。这就是为什么代码中的表单字段没有name
属性(不提交无名称字段)这是件好事。
如果您坚持不使用stripe.js,那么
您提供的源必须是一个令牌(如Stripe.js返回的令牌),或者一个包含用户信用卡详细信息的关联数组
删除stripe.js
,在表单上添加一些name
属性,并使用Charge::create()
方法,而不使用前面提到的所有内容
我必须提到的是,如果我不清楚使信用卡处理变得极其简单的API的基本原理,我会非常担心我让信用卡数据接触我的服务器会让自己面临多大的潜在诉讼。Stripe确实要求您的站点通过HttpThanks提供服务。当然,否则脚本甚至无法加载!不,您可以从HTTP加载HTTPS(反之亦然)。Stripe需要它来进行PCIpurposes@deefour哇,PCI真是太棒了。你的回答“非常”正确。当我找到一个工作脚本时,我会赤裸裸的跟我在一起,因为它在www上不存在。我根本不知道JS,我试过JS脚本。真糟糕,伙计,真糟糕。我最多只能得到NULL,因为tokenStripe确实需要通过HTTPSThanks为您的站点提供服务。当然,否则脚本甚至无法加载!不,您可以从HTTP加载HTTPS(反之亦然)。Stripe需要它来进行PCIpurposes@deefour哇,PCI真是太棒了。你的回答“非常”正确。当我找到一个工作脚本时,我会赤裸裸的跟我在一起,因为它在www上不存在。我根本不知道JS,我试过JS脚本。真糟糕,伙计,真糟糕。充其量我得到了空的令牌如果你的服务器接触信用卡号(因为你不使用Stripe.js),你必须符合PCI SAQ d。这是大约82页的文档,你需要填写,以证明你是符合的。你可能还想雇佣一个QSA,这很容易每年花费数千美元。还有,你为什么要使用Stripe Connect?Stripe connect需要Stripe.js如果您的服务器确实接触到信用卡号(因为您不使用Stripe.js),那么您必须按照PCI SAQ d符合PCI。这是大约82页的文档,您需要填写以证明您符合要求。你可能还想雇佣一个QSA,这很容易每年花费数千美元。还有,你为什么要使用Stripe Connect?Stripe connect需要Stripe.js
'amount' => 200, // $2.00,
'currency' => 'usd',
'source' => [
'object' => 'card',
'number' => '...'
'exp_month' => '...',
'exp_year' => '...',
'cvc' => '...',
]