如何解决将3d安全令牌分条给客户,然后收费
我试图弄清Stripe的系统。 这就是我现在正在尝试的方法:
- 使用49.00 EUR的付款生成3D安全令牌。
- (成功)收到令牌后,我将使用“源”作为3D安全令牌创建客户。
- 此后,我向客户收费(customerId)。但是....它不起作用。
如果我删除创建客户并只收取费用,它就可以正常工作。但是我还需要将该卡附在客户身上,以备后用。
有人可以帮我吗?
//Load private keys
$stripe = new \Stripe\StripeClient(
'XXX'
);
\Stripe\Stripe::setApiKey('XXX');
//On callback the 3d secure token is $_GET['token']
if($_GET['success']=="true")
{
//Create customer and attach the card.
$customer = \Stripe\Customer::create([
'email' => mt_rand(111,999). 'aaa.user@example.com','source' => $_GET['token'],'name'=> 'Je2ns','phone' => '+4403395848585','shipping' => [
'name' => 'Jen3ny R3osen','address' => [
'line1' => '1234 Ma3in Street','city' => 'San Fran3cisco','state' => 'CA','country' => 'FR','postal_code' => '924111',],]);
//Charge the customer (this doesnt work???)
$lastCharge = $stripe->charges->create([
'amount' => 49 * 100,'currency' => 'eur','source' => $customer->id,'description' => 'Payment for product '.mt_rand(111,999),]);
print_r($lastCharge);
exit;
}
<!DOCTYPE html>
<html>
<head>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css"
rel="stylesheet" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<style>
.btn {
cursor: pointer;
}
</style>
</head>
<body>
<div class="container">
<div class="row">
<h1>Cards</h1>
<table class="table table-striped table-bordered table-hover table-responsive">
<thead><th>3d secure support</th><th>Card Number</th><th>CVC</th><th>Expiry Month</th><th>Expiry Year</th><th></th></thead>
<tbody>
<tr><td>no support (American Express)</td><td>3782 822463 10005</td><td>123</td><td>12</td><td>2020</td><td><button class="btn btn-primary" onclick="onClick('3782 822463 10005')">Try this card!</button></td></tr>
<tr><td>optional (no authentication)</td><td>4242 4242 4242 4242</td><td>123</td><td>12</td><td>2020</td><td><button class="btn btn-primary" onclick="onClick('4242 4242 4242 4242')">Try this card!</button></td></tr>
<tr><td>optional (needs authentication)</td><td>4000 0000 0000 3055</td><td>123</td><td>12</td><td>2020</td><td><button class="btn btn-primary" onclick="onClick('4000 0000 0000 3055')">Try this card!</button></td></tr>
<tr><td>required</td><td>4000 0000 0000 3063</td><td>123</td><td>12</td><td>2020</td><td><button class="btn btn-primary" onclick="onClick('4000 0000 0000 3063')">Try this card!</button></td></tr>
</tbody>
</table>
<div class="col-12" id="iframe-payment"></div>
</div>
</div>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
<script>
Stripe.setPublishableKey('pk_test_51HlZKDHy9IqUyGdb3cTcBzS2taPiQ2lk9l541zYLeLIDqrpRjQ2CuKcInk44ODeD0ZLwormKKTo4UlbBAAUBIz7g00ePPikjd4')
</script>
<script src="js/api.js"></script>
<script>
/**
* When we click on a card
*/
function onClick(cardNumber) {
const paymentRequest = {
cardNumber: cardNumber,expYear: '2024',expMonth: '12',cvc: '123',currency: 'EUR',amount: 49 * 100,nativeElement: document.querySelector('#iframe-payment')
};
paymentRequest.nativeElement.innerHTML = 'Loading... Please wait...';
doPayment(paymentRequest).then((result) => {
console.log('result --> ',result);
paymentRequest.nativeElement.innerHTML = 'Success!!!! Your details are correct!!! :)';
alert('Success: Token is: ' + result.id);
location.href='?success=true&token='+result.id;
}).catch((error) => {
console.error(error);
paymentRequest.nativeElement.innerHTML = 'Ups! We can\t validate your details...';
alert('Ups,something wrong,sorry! :(');
});
}
</script>
CHECK STRIPE CUSTOMER OBJECT HERE
响应:[2020年11月12日14:09:13 UTC] PHP致命错误:未捕获(状态400)(请求req_KV5s9g0GJHuOe3)没有此类令牌:'cus_INRMWJeybBDacX'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。