gpt4 book ai didi

php - Paypal Adaptive Payments (Chained) - 链式支付中不允许单边接收方

转载 作者:太空宇宙 更新时间:2023-11-03 15:45:59 25 4
gpt4 key购买 nike

我一直在尝试使用 Paypal Adaptive Payments API 实现拆分付款。我有一个简单的并行付款可以工作,但是这显示了对买家的分摊付款。

基本上我是在销售成员(member)资格。我们地方协会应该得到 75% 的资金,25% 交给管理机构。成员(member)应该只将总金额视为 2015 年成员(member)资格,因此我开始研究链式支付。从表面上看,这看起来像是一个非常简单的代码更改,但却给我带来了与单边付款相关的问题。

我正在用 php 实现它。

所以这里是paypal发送方法

function PaypalSend($payment_details, $api_function){

// initial endpoint that starts the transaction
$paypalInitialEndpoint = 'https://svcs.sandbox.paypal.com/AdaptivePayments/';

// set http headers
$headers = array(
'Connection: Close',
'X-PAYPAL-SECURITY-USERID: testseller_api1.nipf.com',
'X-PAYPAL-SECURITY-PASSWORD: 1381912839',
'X-PAYPAL-SECURITY-SIGNATURE: AzykGe5AzfK.mJFMRzBwIcTap-LcAsmsP4AhYzk1Y-07mh-xPLc-goK3',
'X-PAYPAL-APPLICATION-ID: APP-80W284485P519543T',
'X-PAYPAL-REQUEST-DATA-FORMAT: JSON',
'X-PAYPAL-RESPONSE-DATA-FORMAT: JSON'
);

// setup curl request and http headers
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $paypalInitialEndpoint . $api_function);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payment_details));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

if(!($res = curl_exec($ch)) )
{
error_log(curl_error($ch));
curl_close($ch);
exit;
}

curl_close($ch);

return json_decode($res, TRUE);
}

这是我的链接支付方式。此代码需要进行大量重构,但仅需对当前代码进行少量更改即可完全支持并行支付。

function sendChainedPayment(){

$purchase_details_array = array(
"actionType" => "PAY",
"currencyCode" => "GBP",
"feesPayer" => "PRIMARYRECEIVER",
"memo" => "blah blah blah",
"receiverList" => array(
"receiver" => array(
array(
"amount" => "30.00",
"email" => "testseller@nipf.com",
"primary" => "true"
),
array(
"amount" => "10.00",
"email" => "testseller@gbpf.com",
"primary" => "false"
)
)
),
"returnUrl" => "http://localhost/membershipSuccess.php",
"cancelUrl" => "http://localhost/membershipCancel.php",
"requestEnvelope" => array(
"errorLanguage" => "en_UK",
"detailLevel" => "ReturnAll"
)
);

$response = PaypalSend($purchase_details_array, "Pay");

//echo json_encode($response) . "<br /><br />";

$payKey = $response['payKey'];

$payment_details = array(
"requestEnvelope" => array(
"errorLanguage" => "en_UK",
"detailLevel" => "ReturnAll"
),
"payKey" => $payKey,
"receiverOptions" => array(
array(
"receiver" => array("email" => "testseller@nipf.com"),
"invoiceData" => array(
"item" => array(
array(
"name" => "Membership 2015",
"price" => "30.00",
"identifier" => "Membership 2015: joe bloggs"
)
)
)
),
array(
"receiver" => array("email" => "testseller@gbpf.com"),
"invoiceData" => array(
"item" => array(
array(
"name" => "Membership 2015 (Fee)",
"price" => "10.00",
"identifier" => "Membership 2015 (Fee): joe bloggs"
)
)
)
)
)
);

$response = PaypalSend($payment_details, "SetPaymentOptions");

//echo json_encode($response) . "<br /><br />";

$paypalCustomerUrl = 'https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_ap-payment&paykey=' . $payKey;

echo $paypalCustomerUrl;

//header('Location: ' . $paypalCustomerUrl);
}

我在第一个标注中收到以下响应 JSON。我认为这与帐户只是沙盒帐户而不是真实帐户有关,但如果帐户都必须是真实帐户,我将如何在沙盒中测试它?在这种情况下,用作 API 帐户的帐户是主要接收者。

{"responseEnvelope":{"timestamp":"2015-02-04T14:37:26.598-08:00","ack":"Failure","correlationId":"749bd1d709e76","build":"15089777"},"error":[{"errorId":"520009","domain":"PLATFORM","subdomain":"Application","severity":"Error","category":"Application","message":"Account Account not found. Unilateral receiver not allowed in chained payment is restricted","parameter":["Account not found. Unilateral receiver not allowed in chained payment"]}]}

最佳答案

我收到了同样的错误消息,我通过确保我在 API 调用中向其发送付款的 2 个电子邮件地址都是沙盒帐户来修复它。它们不以真实电子邮件地址的形式存在,但它们确实需要以 Paypal 账户的形式存在。 (之前我将它们发送到沙箱中不存在的 2 个真实的真实 Paypal 账户)。

从错误信息来看,“Account not found. Unilateral receiver not allowed in chained payment”,就是找不到你的账户,可能是因为他们不是沙盒账户。

关于php - Paypal Adaptive Payments (Chained) - 链式支付中不允许单边接收方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28333435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com