123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <?php
- namespace HitPay;
- use HitPay\Request\CreatePayment;
- use HitPay\Response\CreatePayment as CreatePaymentResponse;
- use HitPay\Response\DeletePaymentRequest;
- use HitPay\Response\PaymentStatus;
- use HitPay\Response\Refund;
- use HitPay\Request\CreateSubscriptionPlan;
- use HitPay\Response\CreateSubscriptionPlan as CreateSubscriptionPlanResponse;
- use HitPay\Request\RecurringBilling;
- use HitPay\Response\RecurringBilling as RecurringBillingResponse;
- use HitPay\Request\UpdateRecurringBilling;
- use HitPay\Request\ChargeSavedCard;
- use HitPay\Response\ChargeSavedCard as ChargeSavedCardResponse;
- class Client extends Request
- {
- const API_ENDPOINT = 'https://api.hit-pay.com/v1';
- const SANDBOX_API_ENDPOINT = 'https://api.sandbox.hit-pay.com/v1';
- const TYPE_CONTENT = 'application/x-www-form-urlencoded';
- protected $privateApiKey = '';
-
- public function createPayment(CreatePayment $request)
- {
- $result = $this->request('POST', '/payment-requests', (array)$request);
- return new CreatePaymentResponse($result);
- }
-
- public function getPaymentStatus($id)
- {
- $result = $this->request('GET', '/payment-requests/' . $id);
- return new PaymentStatus($result);
- }
-
- public function deletePaymentRequest($id)
- {
- $result = $this->request('DELETE', '/payment-requests/' . $id);
- return new DeletePaymentRequest($result);
- }
-
- public static function generateSignatureArray($secret, array $args)
- {
- $hmacSource = [];
- foreach ($args as $key => $val) {
- $hmacSource[$key] = "{$key}{$val}";
- }
- ksort($hmacSource);
- $sig = implode("", array_values($hmacSource));
- return hash_hmac('sha256', $sig, $secret);
- }
-
-
- public function refund($payment_id, $amount)
- {
- $result = $this->request('POST', '/refund', array('payment_id' => $payment_id, 'amount' => $amount));
- return new Refund($result);
- }
-
-
- public function createSubscriptionPlan(CreateSubscriptionPlan $request)
- {
- $result = $this->request('POST', '/subscription-plan', (array)$request);
- return new CreateSubscriptionPlanResponse($result);
- }
-
-
- public function recurringBilling(RecurringBilling $request)
- {
- $finalRequestParams = [];
- $requestParams = (array)$request;
- foreach ($requestParams as $key => $val) {
- if (!empty($val)) {
- $finalRequestParams[$key] = $val;
- }
- }
- $result = $this->request('POST', '/recurring-billing', $finalRequestParams);
- return new RecurringBillingResponse($result);
- }
-
-
- public function getRecurringBillingStatus($id)
- {
- $result = $this->request('GET', '/recurring-billing/' . $id);
- return new RecurringBillingResponse($result);
- }
-
-
- public function cancelSubscription($id)
- {
- $result = $this->request('DELETE', '/recurring-billing/' . $id);
- return new RecurringBillingResponse($result);
- }
-
-
- public function getSubscriptionPlanDetails($id)
- {
- $result = $this->request('GET', '/subscription-plan/' . $id);
- return new CreateSubscriptionPlanResponse($result);
- }
-
-
- public function updateSubscriptionPlan($id, CreateSubscriptionPlan $request)
- {
- $result = $this->request('PUT', '/subscription-plan/' . $id, (array)$request);
- return new CreateSubscriptionPlanResponse($result);
- }
-
-
- public function updateRecurringBilling($id, UpdateRecurringBilling $request)
- {
- $result = $this->request('PUT', '/recurring-billing/' . $id, (array)$request);
- return new RecurringBillingResponse($result);
- }
-
-
- public function chargeSavedCard($id, ChargeSavedCard $request)
- {
- $result = $this->request('POST', '/recurring-billing/' . $id, (array)$request);
- return new ChargeSavedCardResponse($result);
- }
- }
|