如何在c#paypal自适应链式支付系统中使用PaymentAction

时间:2015-12-01 20:13:27

标签: c# paypal chained-payments

我正在开发MVC项目,我需要使用具有授权和捕获功能的自适应链式支付系统。

现在,我正在关注此链接: -

https://xadaptivepayments.codeplex.com/

此代码适用于在多个帐户中转移付款。但我不知道如何在重定向到沙盒帐户进行付款时添加paymentaction参数,以便卖家可以获取付款。

我的守则如下: -

    IPayPalAdaptivePaymentService _paysvc = new PayPalAdaptivePaymentService();
        Uri redirectUrl = new Uri(ConfigurationManager.AppSettings["REDIRECT-URL"]);
        Uri returnUrl = new Uri(ConfigurationManager.AppSettings["PAYPAL-RETURNURI"]);
        Uri cancelUrl = new Uri(ConfigurationManager.AppSettings["PAYPAL-CANCELURI"]);
        string str = "asdsadsadsads";
        string seller = ConfigurationManager.AppSettings["PAYPAL-SELLER"];
        string paymentref = "test123";
        string currency = "USD";
        List<x.paypal.model.Receiver> receivers = new List<x.paypal.model.Receiver>();
        receivers.Add(new x.paypal.model.Receiver { Amount = "3", Email = "payments-facilitator@akaritutoring.com", InvoiceId = str, Description = "test paypal payment" });
        receivers.Add(new x.paypal.model.Receiver { Amount = "7", Email = "yashsharmanice1@gmail.com", InvoiceId = str, Description = "test paypal payment 1" });
         IPayRequest payRequest = new x.paypal.model.PayRequest().CreateRequest().WithPaymentReference(paymentref).WithReturnUri(returnUrl).WithCancelUri(cancelUrl).Currency(currency).ReceiverList(receivers);
         var resp = _paysvc.RequestPayment(payRequest);
         return Redirect("https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_ap-payment&paymentaction=authorization&paykey=" + resp.PayKey);

请帮我解决这个问题。

提前致谢...

2 个答案:

答案 0 :(得分:1)

actionType确定自适应付款中的付款操作。 自适应付款中没有sale,order or auth等付款方式。 您可以使用PAY_PRIMARY的actionType来延迟付款,以指定向主要接收方付款但不向次要接收方付款。

您需要运行ExecutePaymentAPI才能获取付款

答案 1 :(得分:0)

自适应付款中无法进行授权/捕获,因为它们都位于不同的单独模型中。

但是,您可以使用Preapproval Payments实现自适应付款中的授权/捕获概念。

通过在指定时间段内与买方预先批准特定金额,买方可以通过授予您向其收取未来金额的许可来预先批准。 (授权)

获得预批准密钥后,您现在可以随时向买家收取费用,这与Capture的概念类似。

然后,您将使用preapprovalKey提供actionType=PAY并设置<template name="emailForm"> {{#each item in items}} <input name="email" class="email" placeholder="enter email address"> <button class="addEmail">+</button> {{/each}} </template> 向买方收费并将金额分配给主要和次要接收方。

您所指的链接非常陈旧,我不确定它是否可以支持上述方案。您可以尝试研究它以实现上述概念。

如果没有,您可以在此处使用适用于.NET的自适应支付SDK:Pay API operation