我正在使用 s2Member Pro plugin安装 Wordpress 以接受订阅付款。
在所有测试中,Stripe 插件每次都能正常工作,当我将其切换到实时模式时,我的卡也能正常工作,所以我假设一切都很好,但是现在我看到大多数卡在提交时都返回了 card_declined 错误付款方式。
用户用名字、最后、电子邮件、密码、用户名填写表格,然后当用户点击“添加付款”时,Stripe 结帐叠加层弹出,我输入卡的详细信息,stripe 插件接受它们并带有绿色勾号但是当我点击提交时,我看到了错误。
站点是https://naturalbusinesstools.com/pricing它具有所有正确的 SSL 设置和所有 Stripe 帐户详细信息、网络 Hook 和验证都是正确的 [正如我提到的它只有某些卡,特别是来自联邦银行的卡]。我还应该提到,无论付款成功/失败,客户都是在 Stripe 帐户中创建的。
是否有某种安全层可以阻止这些通过?
*** 更新 好的,所以有一个发展。我已经尝试了 4 种不同的个人信用卡 [ friend 和家人],它们都运行良好。然后我尝试了几张商业信用卡/借记卡,但都失败了....
看起来 s2 或 stripe 名片交易失败了……这是一个常见问题吗?
*** 更新
好的,这个问题有了很大的发展。我终于找到了 s2 member pro plugin creator,他是这样说的:
“所以我在你的网站上重现了这个行为,我将其追溯到 s2Member 中发生的卡片更新。在最终提交时,s2Member 在卡片后面添加了客户的姓名、address_zip、address_state 和 address_country(又名: 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 中的一个错误。不确定是否有人有解决方法?
最佳答案
短期解决方法
在您的 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();
这将阻止进行额外的更新。无论如何,它仅用于税务报告目的,在我们查明真相之前,这应该会在短期内解决问题。
关于php - Stripe s2Member Pro 插件在实时模式下返回 card_declined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31420359/