在 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 授权后链式付款的主要内容,如果未能解决你的问题,请参考以下文章
如何在 asp.net mvc C# 中使用 paypal 交易的交易 ID 获取交易详情?
如何在 asp.net webform 中使用我自己的购物车实现 Paypal