我正在嘗試在 PayPal v2 SDK 中進行部分退款,但每次都會捕獲全部金額。我只是在捕獲不同的數量,因此應該洗掉剩余的數量,但無論我請求部分數量,都會捕獲全部數量。作業流程是這樣的:1)我正在創建訂單,2)授權訂單,3)現在需要進行部分退款。我使用的代碼如下:
class CaptureOrder
{
public static function buildRequestBody($new_Price_after_refund_requests)
{
return array(
'intent' => 'AUTHORIZE',
'application_context' =>
array(
'return_url' => 'https://example.com/return',
'cancel_url' => 'https://example.com/cancel'
),
'purchase_units' =>
array(
0 =>
array(
'amount' =>
array(
'currency_code' => 'USD',
'value' => $new_Price_after_refund_requests
)
)
)
);
}
public static function orderCapture($authorizationId, $new_Price_after_refund_requests)
{
$request = new AuthorizationsCaptureRequest($authorizationId);
$request->headers["prefer"] = "return=representation";
$request->body = self::buildRequestBody($new_Price_after_refund_requests);
$response = makeclient()->execute($request);
if($response->status == "COMPLETED"){
//some codes here
}
echo json_encode($response->result, JSON_PRETTY_PRINT);
return $response;
}
}
有沒有辦法對授權訂單進行部分退款?也許這不應該是這樣的。
uj5u.com熱心網友回復:
您的請求正文的欄位不正確,因此無法識別。無法識別的欄位將被忽略。由于您身體的一切都被忽略了,因此原始數量被捕獲。
要創建具有正確欄位的正文,請參閱v2/payments 授權請求的 API 參考,其中包含此示例正文(示例中還有其他欄位,都是可選的):
{
"amount": {
"value": "10.99",
"currency_code": "USD"
}
}
將此轉換為 PHP 陣列語法,并使用您的變數作為值。
順便說一句,您的函式名稱有點誤導。您沒有捕獲 PayPal 訂單(這樣做沒有授權步驟)。相反,您在上一步(結賬時)授權了訂單,現在正在獲取該授權。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/466192.html
