new appraoch
This commit is contained in:
73
pancake/system/vendor/omnipay/paypal/src/Message/RestRefundRequest.php
vendored
Executable file
73
pancake/system/vendor/omnipay/paypal/src/Message/RestRefundRequest.php
vendored
Executable file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
/**
|
||||
* PayPal REST Refund Request
|
||||
*/
|
||||
|
||||
namespace Omnipay\PayPal\Message;
|
||||
|
||||
/**
|
||||
* PayPal REST Refund Request
|
||||
*
|
||||
* To get details about completed payments (sale transaction) created by a payment request
|
||||
* or to refund a direct sale transaction, PayPal provides the /sale resource and related
|
||||
* sub-resources.
|
||||
*
|
||||
* TODO: There might be a problem here, in that refunding a capture requires a different URL.
|
||||
*
|
||||
* TODO: Yes I know. The gateway doesn't yet support looking up or refunding captured
|
||||
* transactions. That will require adding additional message classes because the URLs
|
||||
* are all different.
|
||||
*
|
||||
* A non-zero amount can be provided for the refund using setAmount(), if this is not
|
||||
* provided (or is zero) then a full refund is made.
|
||||
*
|
||||
* Example -- note this example assumes that the purchase has been successful
|
||||
* and that the transaction ID returned from the purchase is held in $sale_id.
|
||||
* See RestPurchaseRequest for the first part of this example transaction:
|
||||
*
|
||||
* <code>
|
||||
* $transaction = $gateway->refund(array(
|
||||
* 'amount' => '10.00',
|
||||
* 'currency' => 'AUD',
|
||||
* ));
|
||||
* $transaction->setTransactionReference($sale_id);
|
||||
* $response = $transaction->send();
|
||||
* if ($response->isSuccessful()) {
|
||||
* echo "Refund transaction was successful!\n";
|
||||
* $data = $response->getData();
|
||||
* echo "Gateway refund response data == " . print_r($data, true) . "\n";
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* ### Known Issues
|
||||
*
|
||||
* PayPal subscription payments cannot be refunded. PayPal is working on this functionality
|
||||
* for their future API release. In order to refund a PayPal subscription payment, you will
|
||||
* need to use the PayPal web interface to refund it manually.
|
||||
*
|
||||
* @see RestPurchaseRequest
|
||||
*/
|
||||
class RestRefundRequest extends AbstractRestRequest
|
||||
{
|
||||
public function getData()
|
||||
{
|
||||
$this->validate('transactionReference');
|
||||
|
||||
if ($this->getAmount() > 0) {
|
||||
return array(
|
||||
'amount' => array(
|
||||
'currency' => $this->getCurrency(),
|
||||
'total' => $this->getAmount(),
|
||||
),
|
||||
'description' => $this->getDescription(),
|
||||
);
|
||||
} else {
|
||||
return new \stdClass();
|
||||
}
|
||||
}
|
||||
|
||||
public function getEndpoint()
|
||||
{
|
||||
return parent::getEndpoint() . '/payments/sale/' . $this->getTransactionReference() . '/refund';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user