微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将3d安全令牌分条给客户,然后收费

如何解决将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 举报,一经查实,本站将立刻删除。