- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在开发一个 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
最佳答案
我能够使用 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();
}
关于ajax - Paypal Payflow 透明重定向,使用 AJAX 的 SecureToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28750910/
我正在开发一个 C# VS2012 Framework 4.5 MVC 应用程序,该应用程序试图使用 Payflow Pro ( https://pilot-payflowpro.paypal.com
我正在尝试弄清楚如何使用 PayPal Payflow Gateway SDK 接收要在 Payflow Link IFrame 中使用的 SecureToken。我还使用 Paypal 的 Layo
我是一名优秀的程序员,十分优秀!