Paypal payKey 让我支付错误

Posted

技术标签:

【中文标题】Paypal payKey 让我支付错误【英文标题】:Paypal payKey brings me to incorrect payment 【发布时间】:2016-07-27 16:33:33 【问题描述】:

我正在尝试创建一个 API 调用来创建分期付款。在创建AdaptivePaymentService 并调用Pay 方法后,它返回一个显示SUCCESSPayResponse。但是,当我收到payKey 并打开https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey= 的页面时,它会将我带到一些随机页面,该页面通常会显示一些错误,类似于“此交易已被批准。请访问您的 PayPal 帐户概览以查看详细信息。”,在右上角,它会显示“Fiverr.com”或其他一些随机网页。我已经验证我收到的payKey 是与SUCCESS 消息一起发送的,所以我不明白为什么这是无效的。以下代码是我正在使用的。

        ReceiverList receiverList = new ReceiverList();
        receiverList.receiver = new List<Receiver>();
        RequestEnvelope requestEnvelope = new RequestEnvelope("en_US");

        Dictionary<string, string> configurationMap = new Dictionary<string, string>();

        configurationMap.Add("account1.apiUsername", "----");
        configurationMap.Add("account1.apiPassword", "----");
        configurationMap.Add("account1.apiSignature", "----");
        configurationMap.Add("account1.applicationId", "APP-80W284485P519543T");

        configurationMap.Add("mode", "sandbox");

        Receiver receiver1 = new Receiver();
        receiver1.amount = ((decimal?)9.00);
        receiver1.email = "rbxtrade-seller@gmail.com";

        receiverList.receiver.Add(receiver1);

        Receiver receiver2 = new Receiver();
        receiver2.amount = ((decimal?)2.00);
        receiver2.email = "rbxtrade-buyer@gmail.com";

        receiverList.receiver.Add(receiver2);

        PayRequest request = new PayRequest(requestEnvelope, "PAY", "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?cancel=true", "USD", receiverList, "https://devtools-paypal.com/guide/ap_parallel_payment/dotnet?success=true");

        AdaptivePaymentsService service = new AdaptivePaymentsService(configurationMap);
        PayResponse response = service.Pay(request);

        if (!response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILURE.ToString()) && !response.responseEnvelope.ack.ToString().Trim().ToUpper().Equals(AckCode.FAILUREWITHWARNING.ToString()))
        
            Process.Start("https://www.sandbox.paypal.com/webscr?cmd=_ap-payment&paykey=" + response.payKey); //opens the webpage
        
        else
        
            Console.WriteLine("E:" + String.Join("\n", response.error.Select((x) => x.message)));
        

【问题讨论】:

【参考方案1】:

我目前在 java 中遇到了这个问题。

尝试返回:“https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=”+ paykey。它应该与此一起使用。

这是我找到的所有东西,但它对我不起作用。

【讨论】:

没关系!这实际上解决了它!我不知道我使用的是什么奇怪的 URL,这让它工作了!一百万谢谢! 嗯,错误似乎又发生了,但安装 Cookie 编辑器并清除所有 .paypal cookie 似乎可以解决问题。奇怪,因为我在多台机器上遇到了同样的问题。呵呵。 那么我应该怎么做才能让它工作呢?我正在使用此 URL,但它不起作用。你是说我应该清除 cookie? 尝试清除浏览器中的所有 cookie,然后使用提供的链接。 它适用于另一个浏览器。饼干确实是问题所在。谢谢

以上是关于Paypal payKey 让我支付错误的主要内容,如果未能解决你的问题,请参考以下文章

从 PayPal 检索 PayKey 时出现错误 580022(无效的 AccountID)。应该在接收者的 AccountID 中放置啥以及在哪里可以找到该信息?

需要从支付密钥 PayPal 获得交易 ID

REST api 中的 Paypal 自适应支付

PayPal 自适应支付返回 URL 参数

PayPal AdaptivePayments PaymentDetail PayKey

如何使用 Paypal Adeptive 获取 paykey 并在结帐时成功结帐?