- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Stripe 的测试环境有一个关于 3D 安全流程和订阅的问题。我担心在没有验证或解释问题的情况下将流程推向生产。
我根据文档执行了所有 3d 安全和订阅流程。
https://stripe.com/docs/sources/three-d-secure/subscriptions
当我通过禁用试用期来激活订阅时,我所做的所有尝试都失败了。
我正在使用需要 3d secure 的测试卡:4000 0000 0000 3063
我的代码流程:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Source test Stripe</title>
<script src="https://js.stripe.com/v3/"></script>
<style>
.StripeElement {
background-color: white;
height: 40px;
padding: 10px 12px;
border-radius: 4px;
border: 1px solid transparent;
box-shadow: 0 1px 3px 0 #e6ebf1;
-webkit-transition: box-shadow 150ms ease;
transition: box-shadow 150ms ease;
}
.StripeElement--focus {
box-shadow: 0 1px 3px 0 #cfd7df;
}
.StripeElement--invalid {
border-color: #fa755a;
}
.StripeElement--webkit-autofill {
background-color: #fefde5 !important;
}
</style>
</head>
<body>
<h1>create source</h1>
<form action="javascript:charge()" method="post" id="payment-form">
<div class="form-row">
<label for="card-element">
Credit or debit card
</label>
<div id="card-element">
</div>
<div id="card-errors" role="alert"></div>
</div>
<button>Submit Payment</button>
</form>
</body>
<script>
var stripe = Stripe('pk_test_xxxx');
var elements = stripe.elements();
var style = {
base: {
color: '#32325d',
lineHeight: '18px',
fontFamily: '"Helvetica Neue", Helvetica, sans-serif',
fontSmoothing: 'antialiased',
fontSize: '16px',
'::placeholder': {
color: '#aab7c4'
}
},
invalid: {
color: '#fa755a',
iconColor: '#fa755a'
}
};
var card = elements.create('card', {style: style});
card.mount('#card-element');
card.addEventListener('change', function(event) {
var displayError = document.getElementById('card-errors');
if (event.error) {
displayError.textContent = event.error.message;
} else {
displayError.textContent = '';
}
});
var form = document.getElementById('payment-form');
form.addEventListener('submit', function(event) {
event.preventDefault();
var ownerInfo = {
owner: {
name: 'Jenny Rosen',
address: {
line1: 'Nollendorfstraße 27',
city: 'Berlin',
postal_code: '10777',
country: 'DE',
},
email: 'jenny.rosen@example.com'
},
};
stripe.createSource(card, ownerInfo).then(function(result) {
if (result.error) {
var errorElement = document.getElementById('card-errors');
errorElement.textContent = result.error.message;
} else {
console.log(result.source.id)
}
});
});
function charge() {
}
</script>
</html>
我得到了源 ID src_xxxxx
我放入了我的 php 脚本:
<?php
require_once('stripe-php/init.php');
Stripe\Stripe::setApiKey(
'sk_test_xxxxx'
);
$sourceId = 'src_xxxxx';
$customer = Stripe\Customer::create([
'description' => 'test desc',
'email' => 'test@test.com',
'source' => $sourceId,
]);
$param = [
"amount" => 2995,
"currency" => 'eur',
"type" => "three_d_secure",
'three_d_secure' => [
'card' => $sourceId
],
"redirect" => [
"return_url" => "http://localhost:8080/stripeProcess2.php?customerId=".$customer->id
],
];
$source = Stripe\Source::create($param);
$customer->sources->create(['source' => $source->id]);
var_dump($source->redirect);
在var_dump中,我得到了重定向url
我接受 3d 安全支付,重定向链接执行以下脚本:
<?php
require_once('stripe-php/init.php');
Stripe\Stripe::setApiKey(
'sk_test_xxxx'
);
$source = $_GET['source'];
$customerId = $_GET['customerId'];
$charges = \Stripe\Charge::create(array(
"amount" => 2995,
"currency" => "eur",
'source' => $source,
'customer' => $customerId,
"description" => "Charge for daniel.garcia@example.com"
));
$params = [
'items' => [
[
"plan" => "annual-basic",
]
],
'customer' => $customerId,
'trial_end' => strtotime('+1 day')
];
$sub = \Stripe\Subscription::create($params);
var_dump($sub->id);
通过订阅 Stripe id,我会立即激活订阅(这会向客户收费)
$subscription = \Stripe\Subscription::retrieve("sub_C7eVRi9WLynMdh");
$subscription->trial_end = "now";
$subscription->save();
在这里,我通过 generic_decline 代码收到了失败的付款。
我想知道在我的过程中是否执行了错误,是否需要等待月底为客户充值,或者 Stripe 测试卡是否无法用于此过程?
提前致谢
最佳答案
我认为拒绝的原因是因为测试卡 4000000000003063 ( https://stripe.com/docs/sources/three-d-secure ) 仅适用于单次付款,并且必须完成 3D Secure 才能成功充值。 (请使用信用卡 4000000000003055 - “此卡支持 3D Secure,但不需要”。)
这意味着,如果客户附有此卡,您只能测试初始付款,而不能测试定期付款,因为您无法再次完成 3D 安全程序。
您需要使用 strip 默认程序 ( https://stripe.com/docs/sources/cards ) 存储原始信用卡来源,以便再次使用此来源进行持续的订阅付款。
关于php - Stripe 3d 安全订阅失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48227967/
我在使用以下代码时遇到问题: function http_file_exists($url){ $f=fopen($url,"r"); if($f){ fclose($f); retu
我已经通过 Git 部署到 Azure 几个月了,没有出现重大问题,但现在我似乎遇到了一个无法克服的错误。 我创建了一个新的 Azure 网站,为正在开发的项目创建单独的预览链接。我在新站点上设置了
我已经通过flutter创建了一个App并完成了它,我想在flutter文档中阅读时进行部署。 我收到此错误: FAILURE: Build failed with an exception. * W
我在Windows 10中使用一些简单的Powershell代码遇到了这个奇怪的问题,我认为这可能是我做错了,但我不是Powershell的天才。 我有这个: $ix = [System.Net.Dn
我正在尝试使用 RapidJSON 解析从服务器接收到的数据。以下是收到的确切字符串: [ { "Node": "9478149a08f9", "Address": "172.17
我尝试为 ios 编译 OpenCV。我总是收到这些错误。我用不同版本的opencv试了一下,结果都是一样的。 我运行这个:python 平台/ios/build_framework.py ios_o
我在一台机器上做基本的发布/订阅,我的客户端是 StackExchange-Redis 的 C# 客户端,我在同一台机器上运行基于 Windows 的 Redis 服务器(服务器版本 2.8.4) 当
我有这段代码,但无法执行,请帮我解决这个问题 连接 connect_error) { die ("connection failed: " . $terhubung->connect_erro
我在 tomcat 上运行并由 maven 编译的 Web 应用程序给出了以下警告和错误。我可以在本地存储库中看到所有 JAR,但有人可以帮忙吗。 WARNING: Failed to scan JA
我正在 Windows 8 上使用 Android Studio 开发一个 android 应用程序,我正在使用一些 native 代码。突然间我无法编译我的 C 文件。当我运行 ndk-build
下面的代码对类和结构的成员进行序列化和反序列化。序列化工作正常,但我在尝试使用 oarch >> BOOST_SERIALIZATION_NVP(outObj); 反序列化时遇到了以下错误; 代码中是
如果我运行此命令“rspec ./spec/requests/api/v1/password_reset_request_spec.rb”,此文件中的所有测试都会通过。 但是,当我运行“rspec”时
我在尝试执行测试以使用 Protractor 上传文件时出错,我的代码是这个 it('it should be possible to upload a file', function() {
System.loadLibrary("nativefaceswap"); 当我运行我的应用程序时,我在 Android Studio 中发现了此类错误。在logcat中显示: java.lang.U
我希望有人能帮助我!使用任何方法或命令行的任何 SSL/HTTPS 调用均无效。 我在 Windows 10 中使用 Ubuntu Server 18.04 作为子系统。我的问题是昨天才开始出现的,因
通过删除这两个值将日期字段从 null=True 和 Blank=True 更改为 required 时,使用 db.alter 命令时遇到问题。 当以下行被注释掉时,迁移运行不会出现问题。
我第一次使用 Heroku 尝试创建应用程序(使用 SendGrid 的 Inbound Parse Webhook"和 Twilio SMS 通过电子邮件发送和接收 SMS 消息)。通过 Virtu
我正在将我的 swift 项目更新到 Xcode 7 上的 Swift 2.0。xcode 在构建项目时报告了以下错误: 命令/Applications/Xcode.app/Contents/Deve
在我的代码中,SSL 库函数 SSL_library_init() 没有按预期返回 1。我如何才能看到它返回了什么错误? 我在 SSL_library_init() 之后调用了 SSL_load_er
我正在尝试运行在以下链接中找到的答案: Asynchronously Load the Contents of a Div 但是当我这样做时,我会遇到我不太理解的错误。 我的代码: $(documen
我是一名优秀的程序员,十分优秀!