【问题标题】:How do I charge a stored credit card with the payflow pro API?如何使用 payflow pro API 从存储的信用卡中扣款?
【发布时间】:2016-03-09 12:54:55
【问题描述】:

我正在使用 PayflowPro API (Payflow_dotNET.dll) 的 PayflowNETAPI 类来提交交易以存储信用卡,这样我的公司就不必这样做(为了符合 PCI 的原因)。 我正在使用信用卡商店交易中的 PNREF 进行参考交易,但我不断收到“RESULT=2&PNREF=&RESPMSG=无效投标” 我已经尝试过授权、捕获和销售交易,它们都给出了相同的结果。我究竟做错了什么?

我已多次阅读 Payflow Gateway 开发人员指南和参考 (https://developer.paypal.com/docs/classic/payflow/integration-guide/)。 Authorization、Capture 和 Sale 交易的所有示例在请求中都有信用卡信息。有一些小部分解释和概述了信用卡上传,但从不在参考交易中使用请求的结果。

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

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=无效投标

完成

【问题讨论】:

    标签: c# paypal transactions pci-compliance payflowpro


    【解决方案1】:

    在您的第二次通话中,您缺少变量 "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"
    

    【讨论】:

    • 没用。我添加了 TENDER=C 并收到以下错误:RESULT=117 PNREF= RESPMSG=商家规则检查失败
    • 若要消除此错误,您需要在经理帐户中打开参考交易。转到经理帐户--帐户管理--> 交易设置并打开参考 txn 并等待一个小时,它应该可以正常工作。
    • 谢谢,我会试试的。我不是帐户管理员,所以我必须问我的老板这是否有效。我会尽快报告。
    • 在 PayflowPro 中打开参考交易有效。谢谢
    猜你喜欢
    • 1970-01-01
    • 2014-12-08
    • 1970-01-01
    • 2020-08-24
    • 2012-08-18
    • 2020-02-02
    • 2016-09-28
    • 2021-11-18
    • 2020-08-21
    相关资源
    最近更新 更多