我如何获得 Paypal 自适应支付支付响应

Posted

技术标签:

【中文标题】我如何获得 Paypal 自适应支付支付响应【英文标题】:How do i get Paypal Adaptive payment pay response 【发布时间】:2013-11-03 07:01:35 【问题描述】:

我想为我的 Spring Web 应用程序实现 paypal 自适应支付。我参考以下链接并实现流程https://developer.paypal.com/webapps/developer/docs/classic/adaptive-payments/gs_AdaptivePayments/

我已遵循以下步骤, 第1步: 使用沙盒 API 凭证获取 Paykey

公共类 AdaptiveinstantPay

/**
 * @param args
 * @throws IOException 
 */
public static void main(String[] args) throws IOException 
    Document doc = Jsoup.connect("https://svcs.sandbox.paypal.com/AdaptivePayments/Pay")
              .header("X-PAYPAL-SECURITY-USERID", "xxxxxx_api1.comforters-it.com")
              .header("X-PAYPAL-SECURITY-PASSWORD", "xxxxxxxxxx")
               .header("X-PAYPAL-SECURITY-SIGNATURE", "AiPC9BjkCyDFQXbSkoZcgqH3hpacATgu-TD5fG94GO04KCRlPl1d4hW4")
                  .header("X-PAYPAL-REQUEST-DATA-FORMAT", "NV")
                    .header("X-PAYPAL-RESPONSE-DATA-FORMAT", "NV")
                     .header("X-PAYPAL-APPLICATION-ID", "APP-80W284485P519543T")                        
                       .data("actionType", "PAY")
                         .data("currencyCode", "EUR")
                             .data("receiverList.receiver(0).amount", "55")
                               .data("receiverList.receiver(0).email", "xxxxxx@comforters-it.com")
                              .data("returnUrl", "http://www.mytestapp.com/getPaypalResponse")                              
                              .data("cancelUrl", "http://www.mytestapp.com/cancelPaypalPayment")
                              .data("requestEnvelope", "errorLanguage:en_US, detailLevel:ReturnAll ")
             .timeout(10 * 1000).post();

    System.out.println(doc);


第 2 步: 我已经解析了 Jsoup 响应并获得了 PayKey,之后我发送了https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=My-payKey

支付成功后paypal重定向控制到http://www.mytestapp.com/getPaypalResponse。但问题是我无法获得响应参数。我无法获得响应参数,如 paykey、receiveremail、ack 等……我不知道我的错误是什么。如果我错了,请纠正我

谢谢 森提尔B

【问题讨论】:

【参考方案1】:

您可以只使用 PayPal 提供的自适应支付服务类。它被称为自适应支付 SDK。

下载:http://paypal.github.io/#adaptive-payments 文档:https://developer.paypal.com/docs/classic/products/adaptive-payments/

最后你做这样的事情:

Properties properties = getProperties(); // see below
PayRequest payRequest = new PayRequest();
// <initialize payRequest> - see below

AdaptivePaymentsService adaptivePaymentsService = new AdaptivePaymentsService(properties);
PayResponse payResponse = adaptivePaymentsService.pay(payRequest);
String payKey = payResponse.getPayKey();

您要设置的属性是:

acct1.UserName acct1.Password service.RedirectURL 主要PayPal账户 ...

PayRequest 包含请求信封、操作类型(例如 PAY)、取消 URL、返回 URL、货币代码、ReceiverList 和预批准密钥。

【讨论】:

【参考方案2】:

this paypal link列出了获取付款明细需要用到的参数。客户付款后返回网站即可发送请求。transaction id、paykey或trackingid中任意一种即可。由于您已经可以使用支付密钥,因此您可以使用它。 github 中提供了此示例代码。servlet 的确切链接是this,sdk。

【讨论】:

以上是关于我如何获得 Paypal 自适应支付支付响应的主要内容,如果未能解决你的问题,请参考以下文章

Paypal 自适应支付 IPN 费用信息

贝宝自适应支付和ipn响应

PayPal自适应支付链式支付错误

Paypal 自适应支付 - IPN 和成功的返回响应

PayPal 自适应支付 API - 延迟链支付(PHP、JavaScript)

Paypal自适应支付(并行)550001错误