gpt4 book ai didi

ajax - Paypal Payflow 透明重定向,使用 AJAX 的 SecureToken?

转载 作者:太空宇宙 更新时间:2023-11-03 15:40:03 24 4
gpt4 key购买 nike

我正在开发一个 C# VS2012 Framework 4.5 MVC 应用程序,该应用程序试图使用 Payflow Pro ( https://pilot-payflowpro.paypal.com ) 符合 PCI 标准。我们多年来一直在使用 PayflowPro,这就是我必须使用的。从我的阅读来看,我似乎应该使用透明重定向,所以我不会向我的网络服务器发布任何私有(private)的内容,尽管我不知道我是否需要它以及我希望如何处理这个问题。我也有几个问题...

我认为这一切如何:
我的理解是您需要一个安全 token (与 Paypal 通信,行程 1)。然后您发布安全数据(CC、exp、安全代码),包括安全 token (与 Paypal 的通信,行程 2)并接收销售的授权和交易 ID。

我希望如何做到这一点:
我打算拥有一个包含所有信息(用户详细信息、运输详细信息和抄送信息)的表单,当用户按下购买按钮时,我将使用 AJAX 处理到我的服务器的行程 1(不安​​全用户信息已发送)。在这里,我将创建 URL + params 并向 paypal 发送我的 un/pw 信息以检索 token (全部来自我的服务器)。响应将返回给客户端,如果成功,我将通过 AJAX 直接与 Paypal 的网关服务器通信,这次发送安全 CC 信息 + token (行程 #2)。根据对行程 #2 的回应,我会让用户知道他们的购买情况。 Trip 2 不应该需要我的 Paypal UN/PW 信息,因为它可以很容易地在客户端上看到,而且我包含了应该识别原始交易的 SecureToken。根据我的解释,我认为不需要透明重定向。还是我在这里遗漏了什么?

另外,我想使用什么交易类型?为行程 #1 创建一个“授权”,然后为行程 #2 创建一个“销售”?

所以这里是基本的编码类型的东西:
对于我的研发测试,我正在构建我自己的名称/值对参数字符串(见下文)并通过 WebRequest 通过他们的沙箱/测试 url (pilot-payflowpro.paypal.com) 与网关服务器通信。我确实得到了成功的回应和 SECRETOKEN 的返回。安全 token 的初始请求(如下所示)为 TRXTYPE = A(授权),不发送卡信息。我要先授权吗?

这是我的参数(也可能包括 Shipto 信息,但未在下面列出):

USER=myAuthUserName
&VENDOR=myAuthUserName
&PARTNER=myPartner
&PWD=myPassword
&AMT=21.43
&BILLTOFIRSTNAME=FName
&BILLTOLASTNAME=LName
&BILLTOSTREET=123 Main Street
&BILLTOSTREET2=Apt 203B
&BILLTOCITY=MyCity
&BILLTOSTATE=CA
&BILLTOZIP=77777
&BILLTOPHONENUM=4444444444
&EMAIL=myemail@somedomain.com
&CURRENCY=USD
**&TRXTYPE=A**
&SILENTTRAN=TRUE
&CREATESECURETOKEN=Y
&SECURETOKENID=a99998afe2474b1b82c8214c0824df99

正如我所说,我得到了一个成功的响应并进入下一步发送安全数据(CC#、EXPDATE、安全代码)。当我从参数中删除我的 UN/PW/VENDOR/Partner 信息时,由于用户身份验证无效,我收到错误消息。但是,看到我正在动态构建第二个调用,我无法将我的 Paypal un/pw 放在那里。我错过了什么?任何人都可以提供有关此问题或上述其他问题的帮助?

如果我需要添加任何说明,请告诉我。在此先感谢您的时间!

最佳答案

我能够使用 RichieMN 的答案来获得有效的透明重定向。但是,使用 进行重定向的问题window.location.replace SendCCDetailsToPaypal 功能是您在 GET 字符串上传递数据。

这适用于 PayFlow 网关端,但是当他们将客户的浏览器发送回您的 ResponseURL 时,您的 Apache 日志将显示 整个 payflowlink.paypal.com URL,包括 GET 字符串 作为 Apache 访问日志中的引用者!这GET字符串包括信用卡号码,现在你刚刚失去了你的PCI合规!

为了缓解这个问题,您可以将 SecureToken 和 SecureTokenID 放入您的信用卡输入表单,并将其直接发布到 payflowlink.paypal.com,或者您可以重写 SendCCDetailsToPaypal 函数来构建表单并提交它,如下所示:

function SendCCDetailsToPaypal() {
var parameters = {
"SECURETOKEN": secureToken,
"SECURETOKENID": secureTokenID,
"ACCT": $("#ccNumber").val(),
"EXPDATE": $("#expMonth").val() + $("#expYear").val(),
"CSC": $("#ccSecurityCode").val()
};
var form = $('<form></form>');
form.attr("method", "post");
form.attr("action", "https://pilot-payflowlink.paypal.com");
$.each(parameters, function(key, value) {
var field = $('<input></input>');
field.attr("type", "hidden");
field.attr("name", key);
field.attr("value", value);
form.append(field);
});
$(document.body).append(form);
form.submit();
}

由于该表单通过 POST 传输数据,因此当您的服务器将结果 POST 返回时,引荐来源不包含任何敏感数据,并且您的 PCI 合规性得到维护。

关于ajax - Paypal Payflow 透明重定向,使用 AJAX 的 SecureToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28750910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com