From babf9d4170a22eed15a5f69986ca5c8687d27805 Mon Sep 17 00:00:00 2001 From: Alaa Elsaid Date: Fri, 9 Dec 2022 01:31:21 +0200 Subject: [PATCH] update amount --- src/Paymob.php | 97 +++++++++++++++++++++++--------------------- src/PaymobClient.php | 1 - 2 files changed, 51 insertions(+), 47 deletions(-) diff --git a/src/Paymob.php b/src/Paymob.php index c73c93f..b59b056 100644 --- a/src/Paymob.php +++ b/src/Paymob.php @@ -11,8 +11,8 @@ namespace Alaa\Paymob; +use Exception; use GuzzleHttp\Exception\GuzzleException; -use Exception; class Paymob { @@ -23,40 +23,56 @@ class Paymob "created_at" => 0 ]; - /** - * @param PaymobClient $paymobClient + * @return array */ - public static function setPaymobClient(PaymobClient $paymobClient) + public static function getConfig() { - self::$paymobClient = $paymobClient; + return self::$config; } /** - * @return PaymobClient + * @param array $config */ - public static function getPaymobClient() + public static function setConfig(array $config) { - if (self::$paymobClient == null) self::$paymobClient = new PaymobClient(); - return self::$paymobClient; + self::$config = $config; } /** - * @return array + * @throws GuzzleException + * @throws Exception */ - public static function getConfig() + public static function card($amount, $billing_data, $items = [], $delivery_needed = false, $additional_info = [], $lock_order_when_paid = false) { - return self::$config; + if (!(isset(self::$config['cards_iframe']) || isset(self::$config['default_iframe']))) throw new Exception("please set a valid cards iframe or default iframe"); + if (!(isset(self::$config['card_integration']))) throw new Exception("please set a valid card_integration"); + $res = self::generatePaymentKeyWithOrderId(self::$config['card_integration'], $billing_data, $amount, $items, $delivery_needed, $additional_info, $lock_order_when_paid); + $res["url"] = "https://accept.paymobsolutions.com/api/acceptance/iframes/" . (isset(self::$config['cards_iframe']) ? self::$config['cards_iframe'] : self::$config['default_iframe']) . "?payment_token=" . $res["payment_key"]; + return $res; } /** - * @param array $config + * @throws GuzzleException */ - public static function setConfig(array $config) + private static function generatePaymentKeyWithOrderId($integration_id, $billing_data, $amount, $items = [], $delivery_needed = false, $additional_info = [], $lock_order_when_paid = false) { - self::$config = $config; - } + $order = self::getPaymobClient()->registerOrder(self::getAuthToken(), array_merge([ + "amount_cents" => $amount, + "items" => $items, + "delivery_needed" => $delivery_needed, + + ], $additional_info)); + return ["payment_key" => self::getPaymobClient()->generatePaymentKey(self::getAuthToken(), $order->id, $integration_id, $billing_data, [ + "amount_cents" => $amount, + "expiration" => isset(self::$config["expiration"]) ? self::$config["expiration"] : 60 * 30, + "currency" => isset(self::$config['currency']) ? self::$config['currency'] : "EGP", + "lock_order_when_paid" => $lock_order_when_paid + ]), + "order_id" => $order->id + ]; + } /** * @return string @@ -75,18 +91,21 @@ public static function getAuthToken() } /** - * @throws GuzzleException - * @throws Exception + * @return PaymobClient */ - public static function card($amount, $billing_data, $items = [], $delivery_needed = false, $additional_info = [], $lock_order_when_paid = false) + public static function getPaymobClient() { - if (!(isset(self::$config['cards_iframe']) || isset(self::$config['default_iframe']))) throw new Exception("please set a valid cards iframe or default iframe"); - if (!(isset(self::$config['card_integration']))) throw new Exception("please set a valid card_integration"); - $res = self::generatePaymentKeyWithOrderId(self::$config['card_integration'], $billing_data, $amount, $items, $delivery_needed, $additional_info, $lock_order_when_paid); - $res["url"] = "https://accept.paymobsolutions.com/api/acceptance/iframes/" . ( isset(self::$config['cards_iframe']) ? self::$config['cards_iframe'] : self::$config['default_iframe']) . "?payment_token=" . $res["payment_key"]; - return $res; + if (self::$paymobClient == null) self::$paymobClient = new PaymobClient(); + return self::$paymobClient; } + /** + * @param PaymobClient $paymobClient + */ + public static function setPaymobClient(PaymobClient $paymobClient) + { + self::$paymobClient = $paymobClient; + } /** * @throws GuzzleException @@ -109,28 +128,14 @@ public static function mobileWallet($wallet, $amount, $billing_data, $items = [] return $res; } - - /** - * @throws GuzzleException - */ - private static function generatePaymentKeyWithOrderId($integration_id, $billing_data, $amount, $items = [], $delivery_needed = false, $additional_info = [], $lock_order_when_paid = false) - { - $order = self::getPaymobClient()->registerOrder(self::getAuthToken(), array_merge([ - "amount_cents" => $amount, - "items" => $items, - "delivery_needed" => $delivery_needed, - - ], $additional_info)); - return ["payment_key" => self::getPaymobClient()->generatePaymentKey(self::getAuthToken(), $order->id, $integration_id, $billing_data, [ - "amount" => $amount, - "expiration" => isset(self::$config["expiration"]) ?self::$config["expiration"] : 60 * 30, - "currency" => isset(self::$config['currency']) ? self::$config['currency'] : "EGP", - "lock_order_when_paid" => $lock_order_when_paid - ]), - "order_id" => $order->id - - ]; - } +// +// public static function validateTransactionCallback($transaction) +// { +// +// if (!isset(self::$config['HMAC'])) throw new Exception("please set a HMAC to validate transaction"); +// +// +// } } \ No newline at end of file diff --git a/src/PaymobClient.php b/src/PaymobClient.php index 9a9600e..4bc0db7 100644 --- a/src/PaymobClient.php +++ b/src/PaymobClient.php @@ -75,7 +75,6 @@ public function generatePaymentKey($auth_token, $order_id, $integration_id, $bil "integration_id" => $integration_id, "billing_data" => $billing_data, "expiration" => 60 * 30, - "amount_cents" => 0, "currency" => "EGP", ], $info) ])->token;