在我的应用程序中,我需要使用paypal高级设置定期计费部分,我使用payflow部分执行相同操作 . 我需要付费PayPal按钮流程(快速结账流程)和信用卡付款才能创建定期 Profiles . 我的初始请求是这样的:
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网址 . 我选择了布局C作为我托管的结帐页面 . 当我使用演示项目中提供的凭据时,浏览器导航就解决了;即在我的视图中正确加载了iframe . Paypal管理器设置中是否有任何设置可以防止这种情况发生?我尝试通过沙盒顶级导航修复此问题,但这不允许我通过单击“使用Paypal签出”按钮重定向到paypal网站 .
2)对于使用信用卡付款,一旦交易成功,我将通过以下方式将现有交易转换为 Profiles :
"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付费并在我的网站上使用信用选项付款,那么我应该使用哪些参数来完成此操作?
提前致谢 .
1 回答
尝试使用此代码....没有DLL需要请求paypal付款 .