在 Paypal 中部分退款授权订单
Partially refund the authorized order in Paypal
我试图在 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;
}
}
有什么办法可以对已授权的订单进行部分退款吗?也许这不应该是这样的。
您的请求 body 的字段不正确,因此无法识别。无法识别的字段将被忽略。由于有关您的 body 的所有内容都被忽略了,因此原始金额将被捕获。
要创建具有正确字段的 body,请参阅 the API reference for a v2/payments authorization request,其中有此示例 body(示例中还有其他字段,都是可选的):
{
"amount": {
"value": "10.99",
"currency_code": "USD"
}
}
将其转换为 PHP 数组语法,并使用您的变量作为值。
顺便说一句,您的函数名称有点误导。您没有获取 PayPal 订单(这样做没有授权步骤)。相反,您在上一步(结账时)授权 订单,现在正在捕获该授权。
我试图在 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;
}
}
有什么办法可以对已授权的订单进行部分退款吗?也许这不应该是这样的。
您的请求 body 的字段不正确,因此无法识别。无法识别的字段将被忽略。由于有关您的 body 的所有内容都被忽略了,因此原始金额将被捕获。
要创建具有正确字段的 body,请参阅 the API reference for a v2/payments authorization request,其中有此示例 body(示例中还有其他字段,都是可选的):
{
"amount": {
"value": "10.99",
"currency_code": "USD"
}
}
将其转换为 PHP 数组语法,并使用您的变量作为值。
顺便说一句,您的函数名称有点误导。您没有获取 PayPal 订单(这样做没有授权步骤)。相反,您在上一步(结账时)授权 订单,现在正在捕获该授权。