问题标签 [3d-secure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
916 浏览

android - 如何知道 3D Secure for Stripe 是成功还是失败?

我是条纹的新手。

我已经检查了 Stripe 示例应用程序,我已经能够将用户重定向到 Stripe Web 以使用从Source对象获取的 url 验证 3D Secure:

但是,如果成功或失败,则从网络返回的意图没有结果信息。数据仅包含client_secret,livemodesource键。

我如何知道 3DS 过程是否成功?感谢您的时间。

0 投票
0 回答
148 浏览

angular - 405 Method Not allowed for 3d Secure Payment in Edge

我在应用程序中进行 3d 安全支付,当我们通过 API 从支付网关重定向回 UI 时,我们得到 405 Method not allowed in Edge Browser 它在所有其他浏览器中工作正常。 在此处输入图像描述

我不确定为什么会出现这个问题,Angular Code 有什么改变吗?请建议

0 投票
1 回答
1721 浏览

mongodb - Mongo kubernetes 保护

我正在尝试在 kubernetes 上为我的 mongodb 创建用户名/密码。但似乎 MONGO_INITDB_ROOT_USERNAME/PASSWORD 不起作用或工作不正确,因为我无法使用此凭据登录:

0 投票
1 回答
314 浏览

authorize.net - 持卡人身份验证值无效 Authorize.Net AIM

我正在 ZenCart 上开发 Authorize.Net AIM 模块。最近我们正在为 3DSecure 集成 Cardinal Commerce。设置已经完成,我们将x_authentication_indicatorx_cardholder_authentication_value的值附加到 Authorize.Net 请求。但响应带有代码 3 和子代码 117

我尝试将 urlencode 用于 x_cardholder_authentication_value 但仍然没有运气

响应码:3。响应文本:持卡人身份验证值无效。

下面是发送请求数组

Authorize.net 应该接受持卡人身份验证值,如果验证通过,则持卡人身份验证响应代码将为 2

0 投票
3 回答
1794 浏览

stripe-payments - 保存卡以备将来付款时使用 Stripe 3D Secure

保存卡以备将来付款时是否可以使用 3D Secure?

来自 Stripe 的文档,https://stripe.com/docs/sources/three-d-secure。这似乎是这样做的方法。

但是根据文档,不再推荐使用 PaymentIntents 代替:

不再推荐使用此 API。如果您希望使用 3D Secure,我们强烈建议您采用 PaymentIntents,我们的新支付 API。

那么,有没有办法使用 PaymentIntents(利用 3D 安全)来保存卡片而不立即付款?

0 投票
1 回答
1104 浏览

php - 在 cardinalcommerce 中为 Amex 获取 API 错误 [9000] desc [服务 CCA 查找错误]

我正在使用 Cardinal Cruise Hybrid 进行 3D 安全。我遵循了Cardinal Cruise提供的文档。我用 PHP 创建了 JWT。我正在使用Cardinal Cruise Javascript Activation Credentials。我收到了带有 Visa 和 master 的 cmpi_lookup 响应和 cmpi_authenticate 响应。

我无法使用美国运通卡获得 cmpi_lookup 响应。谁能帮我解决这个问题?我的js代码

得到回应

0 投票
0 回答
781 浏览

applepay - 服务器端的 Apple Pay 支付处理

是否合法并且可以: 1. 在 iOS 应用程序中获取 PKPaymentToken 2. 将此令牌发送到服务器端 3. 解密此 PKPaymentToken(例如,基于许多可用的 GitHub 库) 4. 我现在有:

5. 使用这些数据进行交易:

这里我有疑问!要进行交易,我只能在 paymentData -> emvData(或 3dsecure)中使用这个 EMV 或 3DS 密码,或者我可以使用 applicationPrimaryAccountNumber 作为临时卡号(或者这可能与打印在物理塑料卡上的卡号不同?)

我为什么要问?在服务器上,我与另一个处理事务的外部系统集成。并且有一个图书馆可以获取信用卡信息(卡号、到期日、持卡人)进行交易。

我能否使用此解密数据将原始卡号、有效期、持卡人传递给该库以进行交易支付。或者这个库必须能够处理这个 EMV、3DSecure 密码?

感谢您的澄清。

0 投票
1 回答
51 浏览

php - 无法验证未注册的 3d 安全卡(安全交易)

我正在运行 PHP 7.3,在 apache 服务器上运行。我使用 composer 来获取这个库: https ://github.com/SecureTrading/PHP-API

对于提供的代码,我现在使用的是测试站点参考。我已经设法用于常规过渡。我现在开始使用安全交易提供的测试 MAESTRO 卡在这里管理 3D 安全交易:https ://docs.securetrading.com/document/testing/ 。设计为不要求 3D 身份验证的那个 - 即 5000000000000421

接下来提供的代码将总结我认为这应该起作用的方式:我首先创建 AUTH 请求,得到错误 30004,使用 CACHETOKENISE 请求获取令牌,运行 THREEDQUERY 以确定我是否需要对此进行完整的身份验证卡,得到 N 作为答案,然后运行另一个 AUTH 请求,这次使用 transactionreference。我提供了我正在测试的代码版本(显然,用户名、密码和站点参考名称已被删除以保护我的隐私,但其他代码是相同的)

我希望它会给我一个说明一切正常,但我仍然收到错误 30004,就好像没有提供事务参考一样。知道我能做些什么来修复此代码并防止此错误吗?在此先感谢 Yair

0 投票
2 回答
1824 浏览

angular - 将 Stripe 3d Secure 与 Ionic 4 集成

我正在创建一个混合应用程序,它使用带有 3d 安全卡的条纹进行支付。实现它的最佳方法是什么。创建收费令牌时我需要提供哪些信息。

到目前为止,如果我使用非 3d 安全卡,一切正常。我可以收费,但使用 3d 安全卡会失败

我得到:

致命错误:未捕获的 Stripe\Error\Card:您的卡被拒绝。

网络上的 3D 安全卡启动了一个模式,我如何在 Ionic 上做到这一点。我正在使用离子native/stripe(如果它提供更多控制,可以移动到stripe.js)我也在使用条带连接,但没关系。

0 投票
1 回答
2638 浏览

java - 使用 jose4j 的 ECDH + JWE 加密/解密

我正在尝试在 Android (Java) 中与 JWE 一起实现 ECDH 加密/解密。
我发现jose4jNimbus JOSE库旨在满足我的所有需求,但似乎比我想象的更具挑战性。

如果有人熟悉,那就是 3D Secure 2.0 ......

在下面的规范中:

  • SDK =本地
  • DS = 目录服务器(另一端)

接下来是规格:

  • 给定:P(DS) - EC 公钥(以 PEM 格式提供,可以转换为 PublicKey 或 JWK)
  • 生成一个新的临时密钥对 (Q(SDK), d(SDK))
  • 根据 JWA (RFC7518) 在 Direct Key Agreement 模式下使用曲线 P-256、d(SDK) 和 P(DS) 进行 Diffie-Hellman 密钥交换过程以生成 CEK。此版本规范支持的参数值为:
    • “alg”:ECDH-ES
    • “apv”:目录服务器 ID
    • “epk”:P(DS),inJSONWebKey(JWK)格式{“kty”:“EC”,“crv”:“P-256”}
    • 所有其他参数:不存在
  • CEK:"kty":oct-256bits
  • 生成 128 位随机数据​​作为 IV
  • 使用 CEK 和 JWE 紧凑序列化根据 JWE (RFC7516) 加密 JSON 对象。此版本规范支持的参数值为:
    • “alg”:目录
    • “epk”:Q(SDK)作为{“kty”:“EC”,“crv”:“P-256”}
    • “enc”:“A128CBC-HS256”或“A128GCM”
    • 所有其他参数:不存在
  • 如果算法是 A128CBC-HS256,则使用完整的 CEK,或者如果算法是 A128GCM,则使用 CEK 的最左边 128 位。
  • 删除临时密钥对 (Q(SDK),d(SDK))
  • 将生成的 JWE 作为 SDK 加密数据提供给 3DS 服务器

如果有人已经实现了这个确切的规范并且可以分享代码,那就太棒了!!

在 jose4j 的示例中有一个使用 ECDH 创建 JWT 的示例:
https ://bitbucket.org/b_c/jose4j/wiki/JWT%20Examples (最后一个示例,标题为“生产和使用嵌套的(签名和加密的)JWT ”)。
但是这个例子并不是我所需要的。当我需要加密文本时,它会创建一个令牌。

从上面规范中的 "CEK:"kty":oct-256bits" 开始,我不明白该怎么做。

这是我使用 Nimbus lib 的代码(到目前为止):

这是雨云输出:

nimbus_encrypt: jwe = {"epk":{"kty":"EC","crv":"P-256","x":"AS0GRfAOWIDONXxaPR_4IuNHcDIUJPHbACjG5L7x-nQ","y":"xonFn1vRASKUTdCkFTwsl16LRmSe-bAF8EO4-mh1NYw"} ,"apv":"RjAwMDAwMDAwMQ","enc":"A128CBC-HS256","alg":"ECDH-ES"}

nimbus_encrypt: serializedJwe = eyJlcGsiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJBUzBHUmZBT1dJRE9OWHhhUFJfNEl1TkhjRElVSlBIYkFDakc1TDd4LW5RIiwieSI6InhvbkZuMXZSQVNLVVRkQ2tGVHdzbDE2TFJtU2UtYkFGOEVPNC1taDFOWXcifSwiYXB2IjoiUmpBd01EQXdNREF3TVEiLCJlbmMiOiJBMTI4Q0JDLUhTMjU2IiwiYWxnIjoiRUNESC1FUyJ9..Pi48b7uj3UilvVXKewFacg.0sx9OkHxxtZvkVm-IENRFw.bu5GvOAwcZxdxaDKWIBqwA

这是我的代码(到目前为止,使用@Brian-Campbell 的答案)使用 jose4j lib:

这是 jose4j 输出:

jose4j_encrypt: jwe = JsonWebEncryption{"alg":"ECDH-ES","enc":"A128CBC-HS256","apv":"RjAwMDAwMDAwMQ","epk":{"kty":"EC","x" :"prvyhexJXDWvPQmPA1xBjY8mkHEbrEiJ4Dr-7_5YfdQ","y":"fPjw8UdfzgkVTppPSN5o_wprItKLwecoia9yrWi38yo","crv":"P-256"}}

jose4j_encrypt: serializedJwe = eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTEyOENCQy1IUzI1NiIsImFwdiI6IlJqQXdNREF3TURBd01RIiwiZXBrIjp7Imt0eSI6IkVDIiwieCI6InBydnloZXhKWERXdlBRbVBBMXhCalk4bWtIRWJyRWlKNERyLTdfNVlmZFEiLCJ5IjoiZlBqdzhVZGZ6Z2tWVHBwUFNONW9fd3BySXRLTHdlY29pYTl5cldpMzh5byIsImNydiI6IlAtMjU2In19..gxWYwFQSOqLk5HAgs7acdA.mUIHBiWpWSlQaEOJ_EZGYA.eiTe-88fw-Jfuhji_W0rtg

可以看出,最终结果中的“alg”标头是“ECDH-ES”,而不是“dir”。

如果我要实现通信的双方就足够了,但是有了这个规范,这里似乎缺少许多配置......

使用 jose4j 的代码更长,似乎更可配置,但我无法构建足够有价值的东西来发布在这里。

对我来说主要缺少的部分是如何从上面的规范生成 CEK。

谢谢你。

编辑
在上面添加了 jose4j 代码并添加了输出...