【发布时间】:2013-08-25 02:28:41
【问题描述】:
在我的应用程序中,我需要使用 paypal advanced 设置定期计费部分,并且我正在使用 payflow 部分来做同样的事情。我需要使用 PayPal 支付按钮流程(快速结账流程)和信用卡付款来创建循环配置文件。我最初的要求是这样的:
public static PayPalRedirectAdv PayFlow()
{
NameValueCollection requestArray = new NameValueCollection()
{
{"PARTNER", "PayPal"}, // You'll want to change these 4
{"VENDOR", "merchantname"}, // To use your own credentials
{"USER", "username"},
{"PWD", "abcdenfg"},
{"TRXTYPE", "A"},
{"AMT", "1.00"},
{"CURRENCY", "USD"},
{"CREATESECURETOKEN", "Y"},
{"SECURETOKENID", "tokenId generated"},
{"RETURNURL", UrlReturn},
{"CANCELURL", UrlCancel},
{"ERRORURL", lUrlError},
{"BILLINGTYPE","RecurringBilling"}
};
NameValueCollection resp = run_payflow_call(requestArray); // Will call the payflow end point via HttpWebRequest
if (resp["RESULT"] == "0")
{
string mode = "TEST";
return new PayPalRedirectAdv
{
Url = "https://payflowlink.paypal.com?SECURETOKEN=" + resp["SECURETOKEN"] + "&SECURETOKENID=" + resp["SECURETOKENID"] + "&MODE=" + mode
};
}
else
{
return new PayPalRedirectAdv { Url = string.Empty };
}
}
该过程完成后,我将 url 设置为 IFrame,并将其嵌入到我的 mvc 项目中的一个视图中。加载 IFrame 时,它有两个问题。
1) 页面被重定向到顶层。这意味着浏览器窗口被重定向到 IFrame url。我选择了布局 C 作为我的托管结帐页面。当我使用演示项目中提供的凭据时,浏览器导航就解决了;即 Iframe 在我的视图中正确加载。 Paypal 管理器设置中是否有任何设置可以防止这种情况发生?我尝试通过沙盒顶级导航来解决此问题,但这不允许我通过单击“使用 Paypal 结帐”按钮重定向到 paypal 网站。
2) 对于使用信用卡付款,一旦交易成功,我将通过以下方式将现有交易转换为个人资料:
"TRXTYPE=R&TENDER=C&PARTNER=PayPal&VENDOR=Acme&USER=Acme&PWD=a1b2c3d4&ACTION=A&PROFILENAME=RegularSubscription&ORIGID=<PNREF>&START=12012002&PAYPERIOD=
WEEK&TERM=12&OPTIONALTRX=S&OPTIONALTRXAMT=2.00&COMMENT1=First-time
customer&AMT=42.00"
这工作正常,并创建了循环配置文件。
但是,当我单击“使用 Paypal 结帐”按钮时,这将带我进入 Paypal 页面,我可以使用我的 Paypal 凭据登录到 Paypal,然后当我单击“paynow”按钮时,它将扣除我账户里的钱。这也有一个 PNERF 值,当我使用上面的相同代码通过将 Tender 替换为 P 来将事务转换为重复配置文件时,但它向我显示了一条响应消息,即“找不到与此 id 对应的事务 id”。 Paypal 结帐流程不显示任何有关用户要进行定期付款部分的信息。
另外,我跟随Express Checkout with recurring billing 完成任务,但在 DoExpressCheckout 步骤中我得到了 BAID 为 null。
我需要在我的网站上使用 paypal 付款和使用信用选项付款,那么我应该使用哪些参数来完成此操作?
提前致谢。
【问题讨论】:
-
我只是告诉你我做了什么,因为我不太听懂你说的话。我为客户创建了一个网站和一个网络应用程序,用户在网站上注册,使用 PayPal 定期付款进行支付。 PayPal 的服务器将 IPN(即时付款通知)发送回我在网站上托管的侦听器 URL。此侦听器 URL (Listener.aspx.cs) 背后的代码负责从 PayPal 响应中提取数据,包括姓名、电子邮件、地址等。然后我的代码根据该信息创建了一个用户并插入到数据库中。
-
现在,鉴于我所说的,我不太确定我是否理解您的问题。
-
如果您想了解我如何做到这一点的具体分步说明,我很乐意这样做 - 请告诉我!
标签: c# asp.net-mvc paypal payment-gateway