不要用 Stripe 收集邮政编码

Posted

技术标签:

【中文标题】不要用 Stripe 收集邮政编码【英文标题】:Do not collect Zip code with Stripe 【发布时间】:2018-04-02 10:47:55 【问题描述】:

我正在尝试使用 Stripe v3 进行付款。指南在这里https://stripe.com/docs/elements

我不想收集邮政编码。但是我无法弄清楚如何。我的 html 是:

<form>
  <label>
    <div id="card-element" class="field is-empty"></div>
    <span><span>Credit or debit card</span></span>
  </label>
  <button type="submit">Pay</button>
  <div class="outcome">
    <div class="error" role="alert"></div>
    <div class="success">
      Success! Your Stripe token is <span class="token"></span>
    </div>
  </div>
</form>

javascript 是:

var card = elements.create('card', 
  style: 
    hidePostalCode: true,
    base: 
      iconColor: '#666EE8',
      color: '#31325F',
      lineHeight: '40px',
      fontWeight: 300,
      fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
      fontSize: '15px',

      '::placeholder': 
        color: '#CFD7E0',
      ,
    ,
  
);

card.mount('#card-element');

但它总是要求输入邮政编码:

这里有元素标签的指南https://stripe.com/docs/stripe.js#element-types。但我看不到在哪里可以收集卡号、CVC 和卡到期时间,但看不到邮政编码...

【问题讨论】:

请注意,提供邮政编码会增加付款成功的机会。此外,根据它收到的卡号,它会自动将澳大利亚、英国等地的“ZIP”更改为“邮政编码”(表单验证也会更改)。非常漂亮!我一开始尝试删除邮政编码集合,然后意识到它非常有用。 @stevec 同样在这里,它足够聪明,可以根据国家/地区确定每张卡的付款要求。谢谢! 【参考方案1】:

如果直接使用'@stripe/react-stripe-js'中的CardElement组件,可以使用带有props的组件。

<CardElement options= hidePostalCode: true />

【讨论】:

【参考方案2】:

要删除邮政编码集合,请在 javascript sn-p 中执行以下操作:

 var style = //styling
              //lots of style stuff
             ;
 var card = elements.create('card', hidePostalCode: true, style: style);

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review 我确实改进了答案,它回答了问题,因为它消除了邮政编码要求......【参考方案3】:

谢天谢地,这应该是一个非常简单的修复! hidePostalCode: true 应该是您的options 中的***属性,而不是在此处嵌套在style 下。

https://stripe.com/docs/stripe.js#element-options

var card = elements.create('card', 
hidePostalCode: true,
style: 
 base: 
  iconColor: '#666EE8',
  color: '#31325F',
  lineHeight: '40px',
  fontWeight: 300,
  fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
  fontSize: '15px',

  '::placeholder': 
    color: '#CFD7E0',
   ,
  , 
  
);

card.mount('#card-element');

【讨论】:

是否可以不隐藏邮政编码,但不需要它? 不同的国家有不同的要求。我从事全球销售工作,如果我输入来自美国/加拿大等国家/地区的卡,它需要拉链,但如果我尝试像巴西这样的国家,则不需要。组件会自动处理这个问题,这很棒。

以上是关于不要用 Stripe 收集邮政编码的主要内容,如果未能解决你的问题,请参考以下文章

支付-stripe

心理学术语收集

Stripe:重复付款失败

平时收集到的一些问题

如何开始使用 dj-stripe 1.0?

如何使用 Stripe 的 JavaScript API 验证优惠券?