在PayPal Express Checkout中选择付款接收方

4

我正在使用PayPal的Express Checkout创建一个类似于市场的结账流程。我是否正确地调用了Classic API?

SUBJECT=somebody@email.com

SetExpressCheckout调用中,如何确保somebody@email.com是付款的接收者,而不是我自己?
我需要为市场上的许多卖家这样做,以便每个人都可以直接从买家收到支付到其PayPal帐户的付款。
这不在https://developer.paypal.com/docs/classic/api/merchant/SetExpressCheckout_API_Operation_NVP/文档中,但我在Google上搜索到了它。
我是否正确调用了它?
更新1:
还是应该使用PAYMENTREQUEST_n_SELLERPAYPALACCOUNTID
更新2:
我尝试使用PAYMENTREQUEST_n_SELLERPAYPALACCOUNTID?但它没有工作,说我没有授权。但是,我使用了SUBJECT=,它很好地工作了,即使那个帐户从未授予我权限。
这是正确的方法吗?我只需要让人们能够向多个卖家发送付款。我不需要像退款或其他类似的东西那样做任何花哨的事情。

您在Express Checkout API调用中无法选择收件人。收件人必须登录PayPal或使用信用卡完成付款。 - Vimalnath
付款的接收者?你的意思是付款的发送者必须登录并完成付款,对吗?我正在尝试选择收到钱的人。 - user1227914
2个回答

6
你是否尝试在没有其他凭证参数(例如USERPWDSIGNATURE)的情况下传递PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID?这可能是你的问题所在。
有三种不同的方法可以在没有API权限的情况下为另一个用户处理付款:
  1. 仅传递SUBJECT
  2. 传递USERPWDSIGNATURESUBJECT
  3. 传递USERPWDSIGNATUREPAYMENTREQUEST_0_SELLERPAYPALACCOUNTID。(注意应为PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID,而不是PAYMENTREQUEST_n_SELLERPAYPALACCOUNTID。)
以下是需要注意的事项:
  • 选项1可以随时关闭(并且在某些情况下已关闭),因此,选项2或选项3是您最好的选择。(选项1确实最适合可下载的购物车,以便为商家提供快速启用PayPal的方式。)有些人会告诉您,选项3是首选的方法,但实际上,选项2和选项3都可以同样有效。
  • 如果主题没有授予您任何API权限,则将限制您进行销售交易-因此,请确保将PAYMENTREQUEST_0_PAYMENTACTION设置为Sale
  • 商家账户中有一个设置,可以阻止未经凭证的购物车付款。如果打开了此选项,则除非商家授予您API权限,否则这些方法都将无法使用。(但是,默认情况下关闭此选项,并且大多数商家不知道此选项。)

3
你应该使用Express Checkout并行付款的概念,而不是使用“subject”参数。在并行付款中,你将把“PAYMENTREQUEST_n_SELLERPAYPALACCOUNTID”下的任何人都会收到付款。通过这种方式,你可以一次向多达10个卖家发送付款,而不像“subject”参数只能一次向一个接收方发送付款。
我已经包含了用于并行付款的SETXPRESSCHECKOUT调用请求。
NVP Request:
USER=XXXXXXXXXX&PWD=XXXXXXXXXXXX&SIGNATURE=XXXXXXX&VERSION=109.0&METHOD=SetExpressCheckout&RETURNURL=http://XXXXX/index.php?action=ECreturn&CANCELURL=http://XXXXX/index.php?action=ECcancel&LANDINGPAGE=BILLING&SOLUTIONTYPE=SOLE&PAYMENTREQUEST_0_CURRENCYCODE=USD&PAYMENTREQUEST_0_AMT=300&PAYMENTREQUEST_0_ITEMAMT=200&PAYMENTREQUEST_0_TAXAMT=100&PAYMENTREQUEST_0_DESC=Summer Vacation trip&PAYMENTREQUEST_0_INSURANCEAMT=0&PAYMENTREQUEST_0_SHIPDISCAMT=0&PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID=Eshan@XXXX.pro&PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_0_PAYMENTACTION=Order&PAYMENTREQUEST_0_PAYMENTREQUESTID=CART26488-PAYMENT0&PAYMENTREQUEST_1_CURRENCYCODE=USD&PAYMENTREQUEST_1_AMT=200&PAYMENTREQUEST_1_ITEMAMT=180&PAYMENTREQUEST_1_SHIPPINGAMT=0&PAYMENTREQUEST_1_HANDLINGAMT=0&PAYMENTREQUEST_1_TAXAMT=20&PAYMENTREQUEST_1_DESC=Summer Vacation trip&PAYMENTREQUEST_1_INSURANCEAMT=0&PAYMENTREQUEST_1_SHIPDISCAMT=0&PAYMENTREQUEST_1_SELLERPAYPALACCOUNTID=Eshan@XXXXX.com&PAYMENTREQUEST_1_INSURANCEOPTIONOFFERED=false&PAYMENTREQUEST_1_PAYMENTACTION=Order&PAYMENTREQUEST_1_PAYMENTREQUESTID=CART26488-PAYMENT1&L_PAYMENTREQUEST_0_NAME0=Depart San Jose Feb 12 at 12:10PM Arrive in Baltimore at 10:22PM&L_PAYMENTREQUEST_0_NAME1=Depart Baltimore Feb 15 at 6:13 PM Arrive in San Jose at 10:51 PM&L_PAYMENTREQUEST_0_NUMBER0=Flight 522&L_PAYMENTREQUEST_0_NUMBER1=Flight 961&L_PAYMENTREQUEST_0_QTY0=1&L_PAYMENTREQUEST_0_QTY1=1&L_PAYMENTREQUEST_0_TAXAMT0=50&L_PAYMENTREQUEST_0_TAXAMT1=50&L_PAYMENTREQUEST_0_AMT0=50&L_PAYMENTREQUEST_0_AMT1=150&L_PAYMENTREQUEST_0_DESC0=SJC Terminal 1. Flight time: 7 hours 12 minutes&L_PAYMENTREQUEST_0_DESC1=BWI Terminal 1. Flight time: 7 hours 38 minutes&L_PAYMENTREQUEST_1_NAME0=Night(s) stay at 9990 Deereco Road,Timonium, MD 21093&L_PAYMENTREQUEST_1_NUMBER0=300&L_PAYMENTREQUEST_1_QTY0=1&L_PAYMENTREQUEST_1_TAXAMT0=20&L_PAYMENTREQUEST_1_AMT0=180&L_PAYMENTREQUEST_1_DESC0=King No-Smoking; Check in after 4:00 PM; Check out by 1:00 PM

NVP Response:
TOKEN=EC-59G28135S2093963X
TIMESTAMP=2015-04-05T21:51:31Z
CORRELATIONID=419ef62debfd2
ACK=Success
VERSION=109.0
BUILD=16057073 

然后您的买家将看到以下内容: 在此输入图片描述

你能帮我解决同类问题吗? - Homnath Bagale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接