当前位置: 首页 > 知识库问答 >
问题:

如何使用payflow pro API对存储的信用卡进行充值?

柴意智
2023-03-14

我正在使用PayflowPro API的PayflowNETAPI类(Payflow_dotnet.dll)来提交一个存储信用卡的事务,这样我的公司就不必这样做了(对于符合PCI的reassons)。我正在使用来自信用卡商店事务的PNREF来进行引用事务,但是我一直得到“result=2&PNREF=&respmsg=invalid tender”我尝试了授权、捕获和销售事务,它们都给出了相同的结果。我做错了什么?

我已经多次阅读了Payflow Gateway Developer Guide and Reference(https://Developer.paypal.com/docs/classic/Payflow/integration-guide/)。授权、捕获和销售事务的所有示例都在请求中包含信用卡信息。有一些小的部分解释和概述信用卡上传,但从来没有使用的结果,请求在一个参考事务。

下面是一个示例应用程序和输出

string creditCardUploadRequest = "TRXTYPE=L&TENDER=C&ACCT=4111111111111111&EXPDATE=1218&CVV2=250&BILLTOFIRSTNAME=Homer&BILLTOLASTNAME=Simpson&BILLTOSTREET=350 5th Ave&BILLTOCITY=New York&BILLTOSTATE=NY&BILLTOZIP=10118&BILLTOCOUNTRY=840&USER=<USER>&VENDOR=<VENDOR>&PARTNER=<PARTNER>&PWD=<PASSWORD>&VERBOSITY=HIGH";

var client = new PayPal.Payments.Communication.PayflowNETAPI(HostAddress: "pilot-payflowpro.paypal.com", HostPort: 443, Timeout: 90);
var ccUploadResponse = client.SubmitTransaction(ParamList: creditCardUploadRequest, RequestId: PayflowUtility.RequestId);

//place the responses into collection
var payPalCollection = new NameValueCollection();

foreach (string element in ccUploadResponse.Split('&'))
{
    string[] Temp = element.Split('=');
    payPalCollection.Add(Temp[0], Temp[1]);
}

Console.WriteLine("creditCardUploadRequest succeeded = {0}", payPalCollection.Get("RESPMSG") == "Approved");

string authorizationRequest = "TRXTYPE=A&ORIGID=" + payPalCollection.Get("PNREF") + "&INVNUM=ORD123456&AMT=50&COMMENT1=My Product Sale&USER=<USER>&VENDOR=<VENDOR>&PARTNER=<PARTNER>&PWD=<PASSWORD>&VERBOSITY=HIGH";
var authorizationResponse = client.SubmitTransaction(ParamList: authorizationRequest, RequestId: PayflowUtility.RequestId);

foreach (string element in authorizationResponse.Split('&'))
{
    Console.WriteLine(element);
}
Console.WriteLine("\nDONE");
Console.ReadKey();

输出:

creditCardUploadRequest成功=True

结果=2

PNREF=A7X08AB571EC

RESPMSG=无效投标

已完成

共有1个答案

雷飞虎
2023-03-14

在第二次调用中,您缺少变量“tender=c”。加上这个,应该就好了。

"string authorizationRequest = "TRXTYPE=A&ORIGID=" + payPalCollection.Get("PNREF") + "&INVNUM=ORD123456&AMT=50&COMMENT1=My Product Sale&USER=<USER>&VENDOR=<VENDOR>&PARTNER=<PARTNER>&PWD=<PASSWORD>&VERBOSITY=HIGH"
 类似资料:
  • 我目前正在将Stripe支付网关集成到Meteor应用程序中。该应用程序需要保存客户卡以供以后使用。我能够创建客户对象,然后创建支付意图。我第一次能够创造出这个电荷。现在我想重新加载保存的卡,我已将客户Id传递给paymentIntent,但出现了一个错误。下面是我的客户端和服务器代码。 客户端 错误 不知道如何继续。需要帮助。

  • 是否可以使用此信用卡ID进行交易?有人帮忙吗?

  • 本文向大家介绍PayPal使用信用卡(节点)进行支付,包括了PayPal使用信用卡(节点)进行支付的使用技巧和注意事项,需要的朋友参考一下 示例 在此示例中,我们将研究如何使用PayPal保管库存储信用卡,然后参考存储的信用卡来为用户处理信用卡交易。 我们之所以要使用保管库,是因为我们不必在自己的服务器上存储敏感的信用卡信息。我们仅通过提供的保管库ID引用付款方式,这意味着我们不必自己存储信用卡就

  • 我想在我的网站上使用信用卡重复付款。我网站的访客可以不用paypal注册就用信用卡进行定期付款吗?我尝试使用订阅按钮,但当我选择用信用卡支付时,我输入了信用卡信息,然后贝宝让我在贝宝上注册(https://snag.gy/hxO2Gl.jpg)。此外,我还尝试使用信用卡进行定期付款(直接付款定期付款(DPRP)),但我必须符合PCI标准才能在我的网站上处理dredit卡。我可以通过结账页面(带有“

  • 这是在Windows Server 2012机器上安装的Google Cloud SDK。如果任何人有任何想法,如何做多个排除,这将是伟大的! 谢谢你。

  • 我需要将数据从一个azure表存储迁移,基本上是从一个表迁移到另一个表(两个表既可以在同一订阅中,也可以在不同订阅中)。 在Azure表存储中是否有任何方法可以像在SQL存储中那样实现上述要求,在SQL存储中用户可以生成整个数据库或单个表的脚本或备份。