Stripe s2Member Pro 插件在实时模式下返回 card_declined

Posted

技术标签:

【中文标题】Stripe s2Member Pro 插件在实时模式下返回 card_declined【英文标题】:Stripe s2Member Pro Plugin returning card_declined in live mode 【发布时间】:2015-10-03 21:37:19 【问题描述】:

我正在使用带有 Wordpress 安装的 s2Member Pro plugin 来接受订阅付款。

在所有测试过程中,Stripe 插件每次都能正常工作,当我将其切换到实时模式时,我的卡也能正常工作,所以我认为一切都很好,但是现在我看到大多数卡在提交时返回 card_declined 错误付款表格。

用户使用第一个、最后一个、电子邮件、密码、用户名填写表格,然后当用户单击“添加付款”时,会弹出 Stripe 结帐覆盖层,我输入卡详细信息,条纹插件用绿色勾号接受他们,但当我点击提交时,我看到了错误。

该站点是https://naturalbusinesstools.com/pricing,它具有所有正确的 SSL 设置,并且所有 Stripe 帐户详细信息、网络挂钩和验证都是正确的 [正如我提到的它仅有的某些卡,特别是来自联邦银行的卡]。我还应该提到,无论付款成功/失败,客户都是在 Stripe 帐户中创建的。

是否有一些安全层可以阻止这些通过?

*** 更新 好的,所以有一个发展。我尝试了 4 张单独的个人信用卡 [朋友和家人],它们都运作良好。然后我尝试了几张商业信用卡/借记卡,但都失败了......

所以看起来 s2 或 stripe 无法进行名片交易...这是一个常见问题吗?

***更新

好的,所以这个问题有了很大的发展。我终于找到了 s2 member pro 插件创建者,他说:

“所以我在您的网站上复制了这种行为,并将其追溯到发生在 s2Member 内的卡片更新。在最终提交后,s2Member 在卡片(又名: source) 被添加到您的 Stripe 客户中。

您看到的 card_declined 错误来自 Stripe API,每当 s2Member 尝试使用这些基本详细信息更新卡片时,它都会返回 card_declined 错误。我怀疑这是 Stripe API 中的一个错误,但我想先在此处发布信息,以防万一这可能让您了解为什么此特定更新可能会失败。

了解了哪个 Stripe API 调用导致 Stripe 出现 card_declined 错误,然后我在您的网站上设置了一个测试页面,在该页面上我运行了更新调用并尝试一次更新一条信息。我能够毫无问题地更新名称、address_state 和 address_zip。但是,每当我尝试将 address_country 更新为 AU 的值时,在这张特定的卡片上,Stripe API 都会说 card_declined 出于某种原因。”

在他们的 php SDK 中引用来自 Stripe 的意外 API 响应失败:

                [file] => .../wp-content/plugins/s2member-pro/includes/classes/gateways/stripe/stripe-sdk/lib/Stripe/ApiRequestor.php
                [line] => 109
                [function] => _interpretResponse
                [class] => Stripe_ApiRequestor
                [type] => ->
                [args] => Array
                    (
                        [0] => 
"error": 
"message": "Your card was declined.",
"type": "card_error",
"param": "",
"code": "card_declined"

所以事实证明这是 Stripe API 中的一个错误。不确定是否有人有解决方法?

【问题讨论】:

您在这里处理的本质上是一个业务问题,而不是技术问题。你需要和 Stripe 谈谈这件事。 【参考方案1】:

短期解决办法

在您的 s2Member Pro 副本中找到这行代码:https://github.com/websharks/s2member-pro/blob/000000-dev/s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php#L166 文件:s2member-pro/includes/classes/gateways/stripe/stripe-utilities.inc.php

变化:

$source->save();

收件人:

// $source->save();

这将阻止额外的更新发生。无论如何,它只是用于税务报告的目的,这应该会在短期内解决问题,直到我们能够彻底解决这个问题。

【讨论】:

以上是关于Stripe s2Member Pro 插件在实时模式下返回 card_declined的主要内容,如果未能解决你的问题,请参考以下文章

php 允许从实时拉出(WP Migrate DB Pro)而不在本地激活不需要的插件

s2member 订阅按钮不允许银行账户作为资金来源?

在配置了 s2Member 的 WordPress 中获取“失效”成员的快速而肮脏的方法是啥?

为啥 Stripe 事件不会触发并且不会被 webhook 接收?

支付插件(谷歌支付)+flutter_stripe 集成

WordPress插件:Elementor Pro v2.10.2[已激活版]*(113p)