PayPal链接支付帮助[PHP]
我只是想用paypal链接支付做一个测试,这真的很令人沮丧。我这次测试的目标是向主接收器发送$15,然后向辅助接收器发送$1。这是我的密码:PayPal链接支付帮助[PHP],php,paypal,payment,Php,Paypal,Payment,我只是想用paypal链接支付做一个测试,这真的很令人沮丧。我这次测试的目标是向主接收器发送$15,然后向辅助接收器发送$1。这是我的密码: $api = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay"; $input = array( "actionType" => "PAY", "currencyCode" => "USD", "feesPayer" => "EACHRECEIVER",
$api = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay";
$input = array(
"actionType" => "PAY",
"currencyCode" => "USD",
"feesPayer" => "EACHRECEIVER",
"cancelUrl" => "https://www.google.com", //test url
"returnUrl" => "https://www.google.com", //test url
"receiverList" => array(
"receiver" => array( //send primary receiver $15
"amount" => "15.00",
"email" => "rbxseller1@gmail.com",
"primary" => true
),
"receiver" => array( //send owner of site $1 commission
"amount" => "1.00",
"email" => "rbxowner@gmail.com",
"primary" => false
)
),
"requestEnvelope" => array(
"errorLanguage" => "en_US"
)
);
$headers = array(
"X-PAYPAL-SECURITY-USERID: ".USER_ID, //predefined
"X-PAYPAL-SECURITY-PASSWORD: ".USER_PASS, //predefined
"X-PAYPAL-SECURITY-SIGNATURE: ".USER_SIG, //predefined
"X-PAYPAL-REQUEST-DATA-FORMAT: JSON",
"X-PAYPAL-RESPONSE-DATA-FORMAT: JSON",
"X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T"
);
$ch = curl_init($api);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($input));
$response = curl_exec($ch);
var_dump($response);
当我尝试这样做时,它起作用了,但在我的付款详细信息中,它只向辅助收款人显示$1,没有主收款人的踪迹:
"receiver" => array(
array(/*primary receiver info*/),
array(/*secondary receiver info*/)
),
{“paymentInfo”:[{“接收人”:{“金额”:“1.00”,“电子邮件”:”rbxowner@gmail.com“,”主“:”假“,”付款类型“:”服务“,”帐户ID“:”6LBSVJQNVE9DA“}”,待付款退款“:”假“}]}”
我尝试将“actionType”设置为“PAY_PRIMARY”,结果出现以下错误:
“消息”:“无效的请求参数:操作类型PAY_PRIMARY只能用于链接付款”,“参数”:[“PAY_PRIMARY”]
当我在youtube、stackoverflow、一些论坛网站等上查找时,发现没有太多有用的信息,这让我感到非常沮丧
非常感谢任何愿意花时间阅读本文并帮助我的人 您的错误在于这里的PHP数组语法:
"receiverList" => array(
"receiver" => array(/*primary receiver info*/),
"receiver" => array(/*secondary receiver info*/)
),
关联数组的每个键只能有一个值(要了解原因,请想象一下从以这种方式声明的数组访问$receiverList['receiver']
;它不知道您想要哪个)
对于PHP,这与编写$foo=1相同$foo=2代码>并期望1和2仍然在某个地方“存在”。所有发送到Paypal的信息如下:
"receiverList" => array(
"receiver" => array(/*secondary receiver info*/)
),
如果您回显json\u encode($input)
,您可以自己看到这一点
我不知道数组应该是什么样子,但绝对不是这样。如果没有看到文档,我的最佳猜测是一个没有指定键的简单列表:
"receiverList" => array(
array(/*primary receiver info*/),
array(/*secondary receiver info*/)
),
或者可能需要有“receiver”
键,其中有两个条目:
"receiverList" => array(
"receiver" => array(
array(/*primary receiver info*/),
array(/*secondary receiver info*/)
)
),
或者您误读了文档,没有“receiverList”键,只有“receiver”:
无论是哪种变体,在你把这一点弄清楚之前,都没有必要更改查询的其余部分,因为现在你只向Paypal发送了一组接收者详细信息。这真是令人沮丧。
欢迎来到Paypal的世界。@cola我更新了我的答案,提供了更多的解释和更多的可能性;我不知道哪一个是正确的,但我100%肯定你在问题中所说的是错误的,并且会导致你描述的症状。非常感谢!我对PHP和整个编程都是新手,你真的帮了我的忙。非常感谢您抽出时间,我真的很感谢您。此处列出的示例代码表明,IMSoP的“最佳猜测”建议是正确的解决方案。