PayPal集成,我如何定义接收方帐户?

时间:2014-03-22 00:19:06

标签: php paypal

我正在开发一种非常小的电子商务软件,允许用户放置他们的产品,以便让客户看到并购买它们。

我想提供paypal选项,因此正在为它创建一个模块。

我从这开始:

http://sanwebe.com/assets/paypal-express-checkout/

这让我开始相当不错,但我的“问题”现在是接收器自动是API用户名?

这是我在付款后从paypal获得的响应中的RECEIVEREMAIL参数值中可以看到的。

我希望接收器成为我在db中获得的用户电子邮件。这样他们就可以直接将款项存入他们的账户。

所以我需要在代码中的某处指定电子邮件/ paypal帐户电子邮件吗?

希望有人可以解释我将如何做到这一点,我可以理解在沙盒模式下可能无法做到 - 但有人可以澄清API信息是一回事而接收者是另一回事吗?

更新:我刚发现我可以

&PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID=receiver@email.com

在我打电话给PayPal。虽然这仍然不起作用,但它仍然显示开发。 api用户名。

这是另一个有同样问题,但没有回答:

Doesn't the SELLERPAYPALACCOUNTID work in the sandbox?

2 个答案:

答案 0 :(得分:4)

您的用户需要为您的应用授予API权限,以代表他们进行API调用。然后,您仍然会使用自己的API用户名,密码和签名,但是您还要包含SUBJECT参数。 SUBJECT值将是已为您的应用授予权限的用户的电子邮件地址或PayPal商家ID。

用户可以通过其PayPal个人资料手动授予权限,也可以使用权限API将其构建到您的应用中。但是,如果您使用权限API,则最终在标题(OAuth)中使用标记而不是SUBJECT参数。

==编辑==

似乎必须在API版本或其他版本中更新。我刚刚在沙盒中运行了以下内容而没有任何问题。

[REQUESTDATA] => Array
    (
        [USER] => sandbo_1215254764_biz_api1.angelleye.com
        [PWD] => 12xxxx74
        [VERSION] => 109.0
        [BUTTONSOURCE] => AngellEYE_PHPClass
        [SIGNATURE] => AiKZhEExxxxxxxxz2qxKx96W18v
        [METHOD] => DoExpressCheckoutPayment
        [TOKEN] => EC-9SG69555XT1155150
        [PAYERID] => YW66KXBKJRRES
        [RETURNFMFDETAILS] => 1
        [PAYMENTREQUEST_0_AMT] => 100.00
        [PAYMENTREQUEST_0_CURRENCYCODE] => USD
        [PAYMENTREQUEST_0_ITEMAMT] => 80.00
        [PAYMENTREQUEST_0_SHIPPINGAMT] => 15.00
        [PAYMENTREQUEST_0_TAXAMT] => 5.00
        [PAYMENTREQUEST_0_DESC] => This is a test order.
        [PAYMENTREQUEST_0_NOTETEXT] => This is a test note before ever having left the web site.
        [PAYMENTREQUEST_0_PAYMENTACTION] => Sale
        [PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID] => sandbo_1204199080_biz@angelleye.com
        [L_PAYMENTREQUEST_0_NAME0] => Widget 123
        [L_PAYMENTREQUEST_0_DESC0] => Widget 123
        [L_PAYMENTREQUEST_0_AMT0] => 40.00
        [L_PAYMENTREQUEST_0_NUMBER0] => 123
        [L_PAYMENTREQUEST_0_QTY0] => 1
        [L_PAYMENTREQUEST_0_ITEMURL0] => http://www.angelleye.com/products/123.php
        [L_PAYMENTREQUEST_0_NAME1] => Widget 456
        [L_PAYMENTREQUEST_0_DESC1] => Widget 456
        [L_PAYMENTREQUEST_0_AMT1] => 40.00
        [L_PAYMENTREQUEST_0_NUMBER1] => 456
        [L_PAYMENTREQUEST_0_QTY1] => 1
        [L_PAYMENTREQUEST_0_ITEMURL1] => http://www.angelleye.com/products/456.php
    )

付款结束于sandbo_1204199080_biz@angelleye.com帐户。只要确保你在SetExpressCheckout和DoExpressCheckoutPayment中设置了相同的值,你应该没问题。

答案 1 :(得分:0)

您可以添加此参数:

PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID=someone@gmail.com

还可以为该接收器配置其他参数,例如:

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=someone@gmail.com
PAYMENTREQUEST_0_INSURANCEOPTIONOFFERED=false
PAYMENTREQUEST_0_PAYMENTACTION=Order
PAYMENTREQUEST_0_PAYMENTREQUESTID=CART26488-PAYMENT0

注意:您最多可以添加10个接收器,只需更改索引,例如:

PAYMENTREQUEST_1_.....
PAYMENTREQUEST_2_.....