我想知道接受需要3-D安全验证的信用卡付款的最佳方式是什么.目前结帐流程如下:
我的问题是最后一步.由于我需要重新提交原始请求(其中包含客户的信用卡信息),我需要暂时将其存储在某处,以便在调用回调URL时检索它.有替代方案吗?
我正在考虑尝试iframe解决方案:原始表单永远不会关闭,我会在iframe中显示验证过程.当进程完成时,即调用回调网址时,我隐藏iframe并使用所需的值更新原始表单并重新提交.以前有人尝试过这种技术吗?
此问题特定于本机移动应用程序(例如,实际上不使用浏览器访问网站的IOS,Android,WP应用程序).
我们有一个现有的电子商务网站,需要支付大部分主要的信用卡,而且还通过执行付款人认证3DSecure程序(如实施Visa验证和万事达卡安全).这有助于否定欺诈并减少退款.
现有方案是这样的,结算和付款阶段时,它涉及重定向客户从你的网站了,到银行/卡发行人网站上,客户可以输入他们先前建立的密码来验证他们确实是卡持有人.然后,该网站会将客户重定向回您的网站,并提供完成交易所需的信息.(还有更多内容,但这是它的基本前提).
因此,我们正在努力建立一个本地的IOS(最初),是不是只是用户浏览与Safari浏览器的网站,而是一个的ObjectiveC实现,给出了一个原生的经验,是为用户丰富和任务集中的用户界面和易于应用操作.
我们不能做的是从本机应用程序打开'n浏览器窗口,以便将用户重定向到某处,进行身份验证,然后重定向回来.原因是:
有没有人必须尝试使用Native应用程序(WP/IOS/Andriod)实现3D Secure(VbV/SecureCode )?可以吗?你采取了不同的方法吗?
谢谢阅读!
我试图在IFrame中嵌入3D安全和网络银行页面,我能够成功地为我测试的一些网站实现它.但我怀疑所有银行页面是否会在IFrame中打开.
如果有任何银行将x-frame-otpions设置为SAMEORIGIN或DENY怎么办?
尝试搜索有关此的技术规格,但找不到任何东西.
是否有一个常见的拇指规则或约定(在任何规范中),验证银行应该/不应该使用此标头?如果这对所有银行都有效,我怎么相信?
任何澄清都会有很大帮助.
PS:我知道还有其他方法可以打开授权网关.但是,我仍需要明确这种方法.
我试图在运行时从代码隐藏设置Iframe的HTML.
在我的aspx页面中,我有:
<asp:Button ID="btnChange" runat="server" Text="Change iframe content"
onclick="btnChange_Click" />
<br />
<iframe id="myIframe" runat="server" />
Run Code Online (Sandbox Code Playgroud)
在后面的代码中:
protected void btnChange_Click(object sender, EventArgs e)
{
myIframe.InnerHtml = "<h1>Contents Changed</h1>";
}
Run Code Online (Sandbox Code Playgroud)
当我运行它....它回发,但不会改变myIframe内容...我做错了什么?
我需要这样做,因为我实施3D安全到我的结账过程..基本上:
1)客户输入信用卡详细信息2)提交表单,如果需要3d安全,则检查支付网关.如果是,则为银行安全位置生成url以输入信息3)我创建对此URL的POST请求,其包含长安全令牌和一些其他信息.我抓住从这个POST请求返回的HTML,并需要在iFrame中显示它.
下面是文档说要做的事情:
<html>
<head>
<title>Please Authenticate</title>
</head>
<body onload="OnLoadEvent();">
<form name="downloadForm" action="https://mybank.com/vbyv/verify" method="POST">
<input type="hidden" name="PaReq" value="AAABBBBCCCCHHHHHH=">
<input type="hidden" name="TermUrl" value="https:// www. MyWidgits.Com/next.cgi">
<input type="hidden" name="MD" value="200304012012a">
</form>
<script language="Javascript"> <!-- function OnLoadEvent(){ document.downloadForm.target = "ACSframe"; document.downloadForm.submit(); } //--> </script>
<!-- MERCHANT TO FILL IN THEIR OWN BRANDING HERE …
Run Code Online (Sandbox Code Playgroud) 我已经实现了cybersource silent order api.它正在测试环境中工作.但现在我还要添加3D安全.我没有得到任何帮助如何添加此功能.那里的文档仅提供简单的订单api的一些信息.
我有一个Android
应用程序,我在应用程序中处理付款.付款还需要3d-secure
验证.因此,这需要将用户重定向到可以进行适当操作的网页:例如输入代码等.在我的情况下,该应用程序针对瑞典用户,并将其重定向到一个页面,他们必须bank ID
在同一设备或另一个设备上打开另一个" "应用程序,以执行此验证.
在我们的iOS
应用程序上,此功能按预期工作 一旦用户执行了验证,浏览器就会收到一个回调,然后可以用它来相应地更新应用程序,但是Android
,WebView
我正在使用的是不通知的.所以到目前为止,我无法处理用户验证事件.
有没有人有这个或任何类似的用例的经验?任何帮助表示赞赏.
保存卡以备将来付款时是否可以使用3D Secure?
从Stripe的文档中,https://stripe.com/docs/sources/three-d-secure。这似乎是这样做的方法。
但是根据文档,不再建议使用而是使用PaymentIntents:
不再建议使用此API。如果您希望使用3D Secure,我们强烈建议您采用我们的新付款API PaymentIntents。
因此,有没有办法使用PaymentIntents(以利用3D安全)仅保存卡而无需立即付款?
协议 4.00 的文档可能会更有帮助。对于每个努力让 3DSV2 工作的人来说,我希望任何已经设法让 3DSV2 工作的人能够详细阐述基础知识。
我将根据我的理解总结流程,请大家帮忙纠正必要的地方并添加任何问题,例如从 VPSTx_Id 中删除 {} 大括号。
如果 SagePay 的响应是 3DAUTH,则构建一个表单以向客户显示,其中包含带有必需字段“acsUrl”、“creq”和“thirdDSSessionData”的 iFrame,这些字段是从 SagePay 响应中填写的。(协议 4 指南第 16 页)。笔记 *
该文档说要使其成为自动提交表单,但最好告知客户为什么要向银行进行身份验证并让他们单击按钮继续。青年MMV
我们有一个商业网站,我们正试图通过设置3D Secure(由VISA/Mastercard Securecode验证).
我们使用DataCash作为我们的支付提供商.
我们看到以下问题:
一些注册在这些方案中的卡正在成功地显示在3D安全页面上,其他卡正在失败,并且与发卡银行交谈没有帮助,因为他们告诉我们他们没有看到交易.
我们从"cap.securecode.com"等服务器收到消息,说明:
由于系统错误,无法完成您的身份验证.如果这种情况持续发生,请联系您的CSR".
或者来自"www.securesuite.co.uk":
您无法访问此页面.
这可能是由于以下两个原因之一:
- 您尝试访问的FI已停用
- 对特定IP地址的访问权限受到限制,您的地址不是其中之一
有没有其他人看到验证银行返回这些错误,我该如何解决?
我试图获得有关成功和失败的任何模式的进一步细节.
我找不到解码从 3D-Secure ACS 服务回发的信息 (PaRes) 的方法。
有人知道如何解压缩/解码这个字符串吗?
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
Run Code Online (Sandbox Code Playgroud)
我在某处读到它可以是 base64 编码的 - 但我不知道如何使用 python 解码它。它最终也会被压缩吗?
欢迎任何输入!
我使用3D安全支付Paymill API:
paymill.createToken(params, paymillResponseHandler, tdsInit, tdsCleanup);
Run Code Online (Sandbox Code Playgroud)
文档中的这部分完全不起作用:
var tdsInit = function(iframeUrl, cancelFn) {
var body = document.body || document.getElementsByTagName('body')[0];
var iframe = document.createElement('iframe');
iframe.id = 'tdsIframe';
iframe.src = iframeUrl;
iframe.width = 600;
iframe.height = 500;
iframe.style.zIndex = 0xffffffff;
iframe.style.background = '#fff';
iframe.style.position = 'absolute';
body.insertBefore(iframe, body.firstChild);
};
Run Code Online (Sandbox Code Playgroud)
所以我这样做:
function tdsInit(iframeUrl, cancelFn) {
var body = document.body;
var div3D = document.createElement("div");
div3D.id = "div3Dsecure";
body.insertBefore(div3D, body.firstChild);
var pareq = decodeURIComponent(iframeUrl.params.PaReq.replace(/\+/g, " "));
var termurl = decodeURIComponent(iframeUrl.params.TermUrl.replace(/\+/g, " "));
div3D.innerHTML='.$dot.'<form id="3Dsecureform" action="'.$dot.'+iframeUrl.url+'.$dot.'" …
Run Code Online (Sandbox Code Playgroud) 我们正在将 3D 安全结账与我们当前的订阅计费解决方案集成在一起。我们提供带 7 天免费试用的月度计划。对于集成,我们使用 SetupIntent 来确定客户的卡信息是否需要 3D 安全授权。使用要求 3D 安全的 Stripe 测试卡,我们handleCardSetup()
在结帐页面上调用javascript 中的函数。然后在授权成功后,将客户的付款方式附加给客户。然后继续结帐,我们创建订阅。我们扩展latest_invoice.payment_intent
了订阅。
"SetupIntents 是为不需要初始付款的订阅自动创建的。如果需要身份验证和授权,它们也会被执行。如果两者都成功,或者不需要它们,则不需要任何操作,并且订阅.pending_setup_intent 字段为空。”
当我查看来自调用的响应时Subscription.create(params)
,我看到该pending_setup_intent
字段等于null
. 但是,在 Stripe 的仪表板上查看订阅时,我发现尝试对卡收费时返回402
错误并显示以下响应:
{
"error": {
"code": "subscription_payment_intent_requires_action",
"message": "Payment for this subscription requires additional user action before it can be completed successfully. Please refer to the use of the `enable_incomplete_payments` parameter here: https://stripe.com/docs/billing/lifecycle#incomplete-opt-in",
"type": "card_error"
}
}
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?我在某处错过了一步吗?我们目前正在使用最新版本的 Stripe API:2019-05-16
. 我附上了我们用于创建SetupIntent
、将 附加 …
如何使用自定义条纹形式,然后使用 ASP.NET MVC 与 3D 安全选项集成?
3d-secure ×13
credit-card ×3
android ×2
asp.net ×2
c# ×2
iframe ×2
python ×2
asp.net-mvc ×1
bankid ×1
cybersource ×1
decode ×1
ios ×1
java ×1
javascript ×1
native ×1
opayo ×1
payment ×1
paymill ×1
security ×1