在 asp.net 中使用 paypal 授权后链式付款

Posted

技术标签:

【中文标题】在 asp.net 中使用 paypal 授权后链式付款【英文标题】:Chained payment after authorisation using paypal in asp.net 【发布时间】:2014-12-12 23:54:25 【问题描述】:

如何使用 Paypal 的两个功能 - SetExpressCheckoutPaymentAuthorization 和 Paypal 中的链式付款。我要授权买卖双方。当买家付款时,它会在交易完成后保留到贝宝,然后付款进入卖家账户,20% 的金额将进入管理员账户,80% 的款项将进入使用贝宝的卖家账户。请逐步了解此过程。我想在我的 asp.net 项目中实现这个过程。

【问题讨论】:

【参考方案1】:

您可以在自适应支付中使用 PreApproval 的概念,在此您可以获得买家的许可,以便在未来的任何时间向他收费,一旦他同意,您将获得一个预批准密钥,您可以在自适应链支付 API 中使用该密钥致电向主要和次要收款人支付款项。这样买家就不会立即被收取费用,您将有足够的时间付款。

流程将是这样的:

1.预批:

NVP Request:
requestEnvelope.errorLanguage=en_US&startingDate=2014-10-19Z&endingDate=2015-10-19Z¤cyCode=USD&cancelUrl=XXXXXXX&returnUrl=XXXXXX&ipnNotificationUrl=XXXXXXXX&maxAmountPerPayment=10.00&maxNumberOfPayments=50&maxNumberOfPaymentsPerPeriod=10&maxTotalAmountOfAllPayments=500.00&memo=This is Preapproval memo&paymentPeriod=DAILY

NVP Response:
responseEnvelope.timestamp=2014-10-18T14:31:26.577-07:00
responseEnvelope.ack=Success
responseEnvelope.correlationId=51317322d3c7d
responseEnvelope.build=13085071
preapprovalKey=PA-6D174595N6325214K

2.重定向买家到支付宝页面同意:

https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-preapproval&preapprovalkey=PA-6D174595N6325214K

3. 稍后使用上面收到的 PreApproval Key 向买家收费:

NVP Request:
actionType=PAY&requestEnvelope.errorLanguage=en_US&cancelUrl=XXXXX&returnUrl=XXXXXX&ipnNotificationUrl=XXXXXX&applicationId=XXXXXXX&memo=Chain Payment via PreApproval¤cyCode=USD&receiverList.receiver(0).email=XXXXX.co.in&receiverList.receiver(0).amount=5.00&receiverList.receiver(0).primary=true&receiverList.receiver(1).email=EXXXXX.co.in.pro&receiverList.receiver(1).amount=2.00&receiverList.receiver(1).primary=false&feesPayer=EACHRECEIVER&preapprovalKey=PA-6D174595N6325214K&pin=123456&detailLevel.DetailLevelCode=ReturnAll

NVP Response:
    responseEnvelope.timestamp=2014-10-18T16:01:47.549-07:00
    responseEnvelope.ack=Success
    responseEnvelope.correlationId=bcf3c446f3a44
    responseEnvelope.build=13085071
    payKey=AP-4FF76080D3699590F
    paymentExecStatus=COMPLETED
    paymentInfoList.paymentInfo(0).transactionId=3F2484079H7759838
    paymentInfoList.paymentInfo(0).transactionStatus=COMPLETED
    paymentInfoList.paymentInfo(0).receiver.amount=5.00
    paymentInfoList.paymentInfo(0).receiver.email=XXXXX.co.in
    paymentInfoList.paymentInfo(0).receiver.primary=true
    paymentInfoList.paymentInfo(0).receiver.accountId=XXXXXXX
    paymentInfoList.paymentInfo(0).pendingRefund=false
    paymentInfoList.paymentInfo(0).senderTransactionId=332451441L881611C
    paymentInfoList.paymentInfo(0).senderTransactionStatus=COMPLETED
    paymentInfoList.paymentInfo(1).transactionId=2XX52568GK846100U
    paymentInfoList.paymentInfo(1).transactionStatus=COMPLETED
    paymentInfoList.paymentInfo(1).receiver.amount=2.00
    paymentInfoList.paymentInfo(1).receiver.email=XXXXX.co.in
    paymentInfoList.paymentInfo(1).receiver.primary=false
    paymentInfoList.paymentInfo(1).receiver.accountId=7VZLVB9FB2EZJ
    paymentInfoList.paymentInfo(1).pendingRefund=false
    paymentInfoList.paymentInfo(1).senderTransactionId=34R54203C0679535E
    paymentInfoList.paymentInfo(1).senderTransactionStatus=COMPLETED
    sender.accountId=XXXXXXXX

您可以在这里找到更多信息:

https://developer.paypal.com/docs/classic/adaptive-payments/ht_ap-basicPreapproval-curl-etc/

【讨论】:

嗨.. Eshan 感谢您的反馈。你能帮我更多吗?请看下面的链接developer.paypal.com/docs/classic/paypal-payments-standard/…我想实现这个过程(“给定的链接”)和链式支付过程相结合。请建议我更好的方法。 授权和捕获模型与自适应支付分开。你不能将两者结合起来。预先批准与通过自适应支付实现这一目标的方式相同。 请查看此链接***.com/questions/26462306/… 我提供了我想做的所有细节。请告诉我实现它的过程。

以上是关于在 asp.net 中使用 paypal 授权后链式付款的主要内容,如果未能解决你的问题,请参考以下文章

使用 c# 在 asp.net 中集成 paypal

如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?

如何在 asp.net webform 中使用我自己的购物车实现 Paypal

使用 asp.net 和 C# 集成 Paypal [关闭]

asp.net 中的 Paypal 表单标签问题

如何从asp.net中的paypal(Sandbox)获取返回url中的参数