如何在c#中的贝宝自适应链式支付系统中使用PaymentAction
本文关键字:系统 PaymentAction 自适应 | 更新日期: 2023-09-27 18:25:12
我正在进行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);
请帮我解决这个问题。
提前感谢。。。
actionType
确定自适应支付中的支付操作。自适应支付中没有sale,order or auth
这样的支付操作。您可以使用actionType PAY_PRIMARY
来指定向主要收款人付款而不向次要收款人付款,从而延迟付款。
您需要运行ExecutePaymentAPI来捕获支付
授权/捕获在自适应支付中是不可能的,因为它们都在不同的单独模型中。
但是,您可以在自适应支付中实现授权/捕获的概念,即使用预批准支付。
通过在指定的时间段内与您的买家就特定金额进行预先批准,买家可以通过授予您在未来向其收取所述金额的许可来进行预先批准。(授权)
获得预批准密钥后,您现在可以随时向买家收取费用,这与Capture的概念类似。
然后,您将使用支付API操作,提供preapprovalKey
,并设置actionType=PAY
向买家收费,并将金额分配给主要和次要接收者。
你所指的链接很旧,我不确定它是否能支持上述场景。你可以尝试研究它来实现上面的概念。
如果没有,您可以在此处使用.NET的自适应支付SDK:https://www.nuget.org/packages/PayPalAdaptivePaymentsSDK/