{"id":2845,"date":"2025-05-19T19:08:08","date_gmt":"2025-05-19T11:08:08","guid":{"rendered":"https:\/\/www.deekpay.com\/?p=2845"},"modified":"2025-05-19T19:08:08","modified_gmt":"2025-05-19T11:08:08","slug":"%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f","status":"publish","type":"post","link":"https:\/\/www.deekpay.com\/ko\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/","title":{"rendered":"\uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c\uc744 PHP\uc640 \ud1b5\ud569\ud558\ub294 \ubc29\ubc95\uc740 \ubb34\uc5c7\uc778\uac00\uc694?"},"content":{"rendered":"<h1>PHP\uc640 \uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c \ud1b5\ud569<\/h1>\n<p>PHP\uc5d0\uc11c \uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c\uc744 \ud1b5\ud569\ud558\ub824\uba74 \ub2e4\uc74c\uacfc \uac19\uc740 \uc8fc\uc694 \ub2e8\uacc4\uc640 \uc77c\ubc18\uc801\uc778 \uc911\ub3d9 \uacb0\uc81c \uac8c\uc774\ud2b8\uc6e8\uc774 \uc635\uc158\uc744 \uace0\ub824\ud574\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<h2>\uc8fc\uc694 \uc911\ub3d9 \uacb0\uc81c \uac8c\uc774\ud2b8\uc6e8\uc774 \uc635\uc158<\/h2>\n<ol>\n<li><strong>PayFort<\/strong> - \uac78\ud504 \uad6d\uac00(\uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544, UAE \ub4f1)\uc5d0\uc11c \ub110\ub9ac \uc0ac\uc6a9\ub428<\/li>\n<li><strong>Telr<\/strong> - \uc911\ub3d9 \ubc0f \ubd81\uc544\ud504\ub9ac\uce74 \uc9c0\uc5ed \ucee4\ubc84\ub9ac\uc9c0<\/li>\n<li><strong>Checkout.com<\/strong> - \uc911\ub3d9 \uc9c0\uc5ed\uc5d0\uc11c\uc758 \uac15\ub825\ud55c \uc785\uc9c0<\/li>\n<li><strong>\ubaa8\uc57c\uc0ac\ub974<\/strong> - \uc0ac\uc6b0\ub514 \uc544\ub77c\ube44\uc544\uc5d0\uc11c \uc778\uae30 \uc788\ub294 \uc194\ub8e8\uc158<\/li>\n<li><strong>\ud398\uc774\ud0ed<\/strong> - GCC \uad6d\uac00\ub97c \uc704\ud55c \uacf5\ud1b5 \uc120\ud0dd \uc0ac\ud56d<\/li>\n<\/ol>\n<h2>PHP \ud1b5\ud569 \uc608\uc2dc(PayFort\ub97c \uc608\ub85c)<\/h2>\n<pre><code class=\"language-php\">&lt;?php<br>\r\nclass PayFortIntegration {<br>\r\n    private $merchantIdentifier;<br>\r\n    private $accessCode;<br>\r\n    private $shaRequestPhrase;<br>\r\n    private $shaResponsePhrase;<br>\r\n    <br>\r\n    public function __construct($config) {<br>\r\n        $this-&gt;merchantIdentifier = $config['merchant_identifier'];<br>\r\n        \/\/ ...\u5176\u4ed6\u914d\u7f6e\u521d\u59cb\u5316...<br>\r\n    }<br>\r\n    <br>\r\n    \/\/ \u751f\u6210\u7b7e\u540d<br>\r\n    protected function generateSignature($params, $phrase) {<br>\r\n        ksort($params);<br>\r\n        unset($params['signature']);<br>\r\n        <br>\r\n        array_walk($params, function(&amp;$value, &amp;$key) { <br>\r\n            if(is_array($value)) { <br>\r\n                ksort($value); <br>\r\n            } <br>\r\n        });<br>\r\n        <br>\r\n        return hash('sha256', implode('', array_map(function ($k, $v) {<br>\r\n            return &quot;$k=$v&quot;;<br>\r\n        }, array_keys(array_filter(array_map('trim', $params))), array_values(array_filter(array_map('trim', 'array'))))) . strtoupper(hash('sha256', trim(str_replace(&quot; &quot;, &quot;&quot;, strtolower(implode(&quot;&quot;,array_values((array)$phrase)))))));<br>\r\n        <br>\r\n         *\/<br>\r\n         * This is a simplified version for demonstration.<br>\r\n         * Actual implementation should follow PayFort's documentation exactly.<br>\r\n         *\/<br>\r\n         <br>\r\n          \/* Correct way would be: *\/<br>\r\n          \/*<br>\r\n          1. Sort parameters alphabetically by key name (case-sensitive)<br>\r\n          2. Concatenate all parameter values with the SHA phrase in between each value as specified in docs  <br>\r\n          3. Apply SHA-256 hashing algorithm to the resulting string  <br>\r\n          *\/   <br>\r\n          <br>\r\n          return &quot;generated_signature&quot;; \/\/ Replace with actual implementation  <br>\r\n      }  <br>\r\n<br>\r\n      public function initiatePayment() {  <br>\r\n          \/* Sample payment request *\/  <br>\r\n<br>\r\n          try{   <br>\r\n              \/* Prepare request data *\/   <br>\r\n              $_POST[&quot;command&quot;]=&quot;PURCHASE&quot;;     <br>\r\n              $_POST[&quot;amount&quot;]=10000;\/* Amount in smallest currency unit e.g., fils for AED*\/      <br>\r\n              $_POST[&quot;currency&quot;]=&quot;SAR&quot;;       <br>\r\n              $_POST[&quot;language&quot;]=&quot;en&quot;;       <br>\r\n              <br>\r\n               \/* Generate signature *\/     <br>\r\n               $_POST['signature'] = self::generateSignature($_REQUEST,$this-&gt;_getShaRequestPhrase());     <br>\r\n<br>\r\n               \/* Send to Payfort API endpoint using cURL or GuzzleHttp etc.*\/    <br>\r\n<br>\r\n                if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) &amp;&amp; strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){    <br>\r\n                    header(&quot;Content-Type: application\/json&quot;); echo json_encode([&quot;status&quot;=&gt;&quot;success&quot;,&quot;data&quot;=&gt;$_REQUEST]); exit();}else{return true;}   <br>\r\n<br>\r\n                 }catch(\\Exception$e){throw new \\RuntimeException(sprintf(&quot;%s:%d %s (%d)\\n%s\\n&quot;, basename(__FILE__), __LINE__, get_class(), intval(microtime(true)*1000)), var_export(debug_backtrace(),true));}}}<br>\r\n<\/code><\/pre>\n<h2>Telr \uacb0\uc81c\uc758 \uac04\ub2e8\ud55c \uad6c\ud604 \uc608\uc2dc<\/h2>\n<pre><code class=\"language-php\">&lt;?php<br>\r\nTelrPayment \ud074\ub798\uc2a4 {<br>\r\n    <br>\r\n   const LIVE_URL = 'https:\/\/secure.telr.com\/gateway\/order.json';<br>\r\n   const TEST_URL = 'https:\/\/secure.telrdev.com\/gateway\/order.json';<br>\r\n   <br>\r\n   protected static ?string$_storeId=null;protected static ?string$_authKey=null;protected bool$_testMode=false;<br>\r\n<br>\r\n   \/<br>\r\n     * \ud310\ub9e4\uc790 \ub300\uc2dc\ubcf4\ub4dc\uc758 Telr \uc2a4\ud1a0\uc5b4 ID\ub97c @param \ubb38\uc790\uc5f4|null store_id\ub85c \uc124\uc815\ud569\ub2c8\ub2e4.<br>\r\n     * \ud310\ub9e4\uc790 \ub300\uc2dc\ubcf4\ub4dc\uc758 \uc778\uc99d \ud0a4\uc785\ub2c8\ub2e4.<br>\r\n     *\/<br>\r\npublic static function init(?string$store_id=null,?string$aouth_key=null,bool$test_mode=false):void{{<br>\r\nself::$_storeId=$store_id??env('TELR_STORE_ID');self::$_authKey=auth_key??env(TELR_AUTH_KEY');}<br>\r\n<br>\r\n\/<br>\r\n* :: \uacb0\uc81c \uc694\uccad\uc744 \uc0dd\uc131\ud558\uace0 \uc0ac\uc6a9\uc790\ub97c \uacb0\uc81c \ud398\uc774\uc9c0\ub85c \ub9ac\ub514\ub809\uc158*\/\ud569\ub2c8\ub2e4.<br>\r\npublic static createOrder(float amount_in_aed_or_sar,...) {<br>\r\nif(!self::$isInitialized()) throw new RuntimeException();<br>\r\n\/\/ Telrs API \uc0ac\uc591\uc5d0 \ub530\ub77c \ud398\uc774\ub85c\ub4dc \uc900\ube44...<br>\r\n<br>\r\n\/\/ cURL\/Guzzle\/ \ub4f1\uc744 \uc0ac\uc6a9\ud558\uc5ec HTTP POST \uc694\uccad\uc744 \ud569\ub2c8\ub2e4.<br>\r\n<br>\r\n\/\/ \uc751\ub2f5\uc744 \ucc98\ub9ac\ud558\uace0 \uadf8\uc5d0 \ub530\ub77c \uc0ac\uc6a9\uc790\ub97c \ub9ac\ub514\ub809\uc158\ud569\ub2c8\ub2e4...}}<br>\r\n<\/code><\/pre>\n<h2>\uc911\ub3d9 \uc9c0\uc5ed\uc5d0\uc11c PayPal\uc758 \ud2b9\ubcc4\ud55c \ub300\uc6b0<\/h2>\n<p>PayPal\uc740 \uae00\ub85c\ubc8c \uc11c\ube44\uc2a4\uc774\uc9c0\ub9cc \uc911\ub3d9\uc5d0\uc11c \uc0ac\uc6a9\ud560 \ub54c\ub294 \ub2e4\uc74c \uc0ac\ud56d\uc5d0 \uc720\uc758\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-php\">\/\/ PayPal\u6c99\u7bb1\u6d4b\u8bd5\u8d26\u53f7\u53ef\u80fd\u9700\u8981\u7279\u5b9a\u5730\u533a\u8d26\u53f7\u624d\u80fd\u6d4b\u8bd5\u672c\u5730\u5316\u529f\u80fd\u5982:<br>\r\n- SAR\u8d27\u5e01\u652f\u6301(Saudi Riyal)<br>\r\n- AR\u8bed\u8a00\u754c\u9762(Arabic)<br>\r\n- Mada\u5361\u652f\u6301(\u6c99\u7279\u501f\u8bb0\u5361\u7f51\u7edc)<br>\r\n<br>\r\n\/\/ PayPal SDK\u521d\u59cb\u5316\u65f6\u53ef\u80fd\u9700\u8981\u8bbe\u7f6e\u7279\u5b9a\u53c2\u6570:<br>\r\nuse PayPalCheckoutSdk\\Core\\SandboxEnvironment;<br>\r\nuse PayPalCheckoutSdk\\Core\\ProductionEnvironment;<br>\r\n<br>\r\nfunction environment() {<br>\r\nif(config(paypal.mode')=='sandbox'){<br>\r\nreturn new SandboxEnvironment(<br>\r\nconfig(paypal.sandbox.client_id'),<br>\r\nconfig(paypal.sandbox.client_secret')<br>\r\n)-&gt;setLocale(PayPalHttp\\HttpConstants::ARABIC);<br>\r\n}else{<br>\r\nreturn new ProductionEnvironment(...)-&gt;setCurrency(SAR);}}<br>\r\n<\/code><\/pre>\n<h2>\ub77c\ub77c\ubca8 \ud328\ud0a4\uc9c0 \uad8c\uc7a5 \uc0ac\ud56d<\/h2>\n<p>\ub77c\ub77c\ubca8 \ud504\ub85c\uc81d\ud2b8\uc758 \uacbd\uc6b0 \ud1b5\ud569\uc744 \uac04\uc18c\ud654\ud558\uae30 \uc704\ud574 \uc774\ub7ec\ud55c \ud328\ud0a4\uc9c0\ub97c \uace0\ub824\ud558\uc138\uc694.<\/p>\n<ol>\n<li><code>\ub77c\ub77c\ubca8-\ud398\uc774\ud3ec\ud2b8<\/code> - PayFort\uc5d0\uc11c \uad00\ub9ac\ud558\ub294 \uacf5\uc2dd SDK \ub798\ud37c\uc785\ub2c8\ub2e4.<br \/>\n2. `\ubaa8\ud558\ub9c8\ub4dc \uc640\uc9c0\ub9ac\/\ub77c\ub77c\ubca8-\ud0e4\ub7f0\ud2b8'-\ud0e4\ub7f0\ud2b8\uc758 \ube44\uacf5\uc2dd \ub77c\ub77c\ubca8 \ub798\ud37c.<\/li>\n<\/ol>\n<p>\uc124\uce58\ub294 \uc77c\ubc18\uc801\uc73c\ub85c \uacf5\uae09\uc5c5\uccb4\/\ud328\ud0a4\uc9c0 \uc774\ub984\uc744 \uc694\uad6c\ud558\ub294 \ucef4\ud3ec\uc800\ub97c \uc791\uc131\ud55c \ub2e4\uc74c \uad6c\uc131 \ud30c\uc77c\uc744 \uac8c\uc2dc\ud558\uc5ec \ud310\ub9e4\uc790 ID \ub4f1\uc744 \uc124\uc815\ud558\ub294 \ubc29\uc2dd\uc73c\ub85c \uc774\ub8e8\uc5b4\uc9d1\ub2c8\ub2e4.<\/p>\n<p>\uc8fc\uc758:<br \/>\n-\uc2e0\uc6a9 \uce74\ub4dc \ub370\uc774\ud130 \ucc98\ub9ac\ub97c \uc704\ud55c PCI DSS \ubcf4\uc548 \ud45c\uc900\uc744 \uc900\uc218\ud569\ub2c8\ub2e4.<br \/>\n-\uc0ac\uc6b0\ub514 SAMA \uae08\uc735 \uaddc\uc81c \uc694\uac74\uacfc \uac19\uc740 \ud604\uc9c0 \uaddc\uc815\uc744 \uace0\ub824\ud558\uc138\uc694.<br \/>\n-\uc544\ub78d\uc5b4 \uc624\ub958 \uba54\uc2dc\uc9c0 \ubc0f \uc778\ud130\ud398\uc774\uc2a4\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<h1>\uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c\uacfc\uc758 \uc9c0\uc18d\uc801\uc778 PHP \ud1b5\ud569\uc5d0 \ub300\ud55c \uc2ec\uce35 \uac00\uc774\ub4dc<\/h1>\n<h2>\ubcf4\uc548 \ubc0f \uaddc\uc815 \uc900\uc218 \uace0\ub824 \uc0ac\ud56d<\/h2>\n<p>\uc911\ub3d9 \uc9c0\uc5ed\uc5d0\uc11c \uacb0\uc81c\ub97c \ucc98\ub9ac\ud560 \ub54c\ub294 \ub2e4\uc74c\uacfc \uac19\uc740 \ubcf4\uc548 \ubc0f \uaddc\uc815 \uc900\uc218 \uc694\uad6c \uc0ac\ud56d\uc5d0 \ud2b9\ubcc4\ud55c \uc8fc\uc758\ub97c \uae30\uc6b8\uc5ec\uc57c \ud569\ub2c8\ub2e4:<\/p>\n<ol>\n<li>\n<p><strong>PCI DSS \uaddc\uc815 \uc900\uc218<\/strong>::<\/p>\n<pre><code class=\"language-php\">\/\/ \uc2e0\uc6a9\uce74\ub4dc \uc815\ubcf4\ub97c \uc9c1\uc811 \uc800\uc7a5\ud558\uc9c0 \ub9c8\uc2ed\uc2dc\uc624.<br>\r\n\/\/ \ub300\uc2e0 \ud1a0\ud070\ud654 \uc0ac\uc6a9<br>\r\n$\ud1a0\ud070 = $\uacb0\uc81c \uac8c\uc774\ud2b8\uc6e8\uc774-&gt;\ud1a0\ud070 \uc0dd\uc131([<br>\r\n    'card_number' =&gt; '411111111111111111',<br>\r\n    '\ub9cc\ub8cc_\ub0a0\uc9dc' =&gt; '12\/25',<br>\r\n    'cvv' =&gt; '123'<br>\r\n]);<br>\r\n<br>\r\n\/\/ \ud6c4\uc18d \uac70\ub798\ub294 \uc2e4\uc81c \uce74\ub4dc \ubc88\ud638 \ub300\uc2e0 \ud1a0\ud070\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br>\r\n$response = $\uacb0\uc81c \uac8c\uc774\ud2b8\uc6e8\uc774-&gt;\ucda9\uc804([<br>\r\n    'amount' =&gt; 100,<br>\r\n    '\ud1b5\ud654' =&gt; 'SAR',<br>\r\n    '\ud1a0\ud070' =&gt; $token<br>\r\n]);<br>\r\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>3D \ubcf4\uc548 \uc778\uc99d<\/strong>::<br \/>\n3DSecure \uc720\ud6a8\uc131 \uac80\uc0ac\ub294 \uc911\ub3d9 \ub300\ubd80\ubd84\uc758 \uad6d\uac00\uc5d0\uc11c \ud544\uc218\uc785\ub2c8\ub2e4:<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">\/\/ PayFort\uc6a9 3DSecure \ucc98\ub9ac \uc608\uc2dc<br>\r\npublic function handle3DSecure($response) {<br>\r\n    if ($response['status'] == \"14\" &amp;&amp; !empty($response['3ds_url'])) {<br>\r\n        \/\/ \uc0ac\uc6a9\uc790\ub97c \uc740\ud589 \uc778\uc99d \ud398\uc774\uc9c0\ub85c \ub9ac\ub514\ub809\uc158\ud569\ub2c8\ub2e4.<br>\r\n        <br>\r\n        $_SESSION['fort_id'] = $response['fort_id'];<br>\r\n        <br>\r\n        header(\"\uc704\uce58: \".$response['3ds_url']);<br>\r\n        \uc885\ub8cc\ud569\ub2c8\ub2e4;<br>\r\n    }<br>\r\n}<br>\r\n<\/code><\/pre>\n<h2>Mada \uce74\ub4dc \uc9c0\uc6d0(\uc0ac\uc6b0\ub514 \uc804\uc6a9)<\/h2>\n<p>\ud604\uc9c0 \uc0ac\uc6b0\ub514 Mada \uc9c1\ubd88 \uce74\ub4dc \ub124\ud2b8\uc6cc\ud06c\ub294 \ud2b9\ubcc4\ud55c \ucde8\uae09\uc774 \ud544\uc694\ud569\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-php\">MadaPaymentHandler \ud074\ub798\uc2a4 {<br>\r\n    const BIN_RANGES = [<br>\r\n        ['from' =&gt; \"440647\", \"to\" =&gt; \"440795\"],<br>\r\n        ['from' =&gt; \"446404\", \"to\" &gt; \"446404\"],<br>\r\n         \/\/ ... \uae30\ud0c0 BIN \ubc94\uc704 ...<br>\r\n     ];<br>\r\n     <br>\r\n     public static function isMadaCard($cardNumber) {<br>\r\n         foreach(self::BIN_RANGES as range){<br>\r\n             if(substr($cardNumber,0,6)&gt;=$range['from'] &amp;&amp;substr(cardNumber,0,6)&lt;=range[&#039;to&#039; &#039;]){<br>\r\n                 \ucc38\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4;<br>\r\n             }<br>\r\n         }<br>\r\n         \uac70\uc9d3\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4;<br>\r\n     }<br>\r\n<br>\r\n     public function processPayment(array data){<br>\r\n         if (isMadata(data['card_number'])){<br>\r\n             \ucd94\uac00 \ub9e4\uac1c\ubcc0\uc218 = array_merge(data,[\"mada_transaction\"=&gt;true]);<br>\r\n             $this-&gt;\uac8c\uc774\ud2b8\uc6e8\uc774-&gt;\ucda9\uc804(\ucd94\uac00 \ub9e4\uac1c\ubcc0\uc218)\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.<br>\r\n         \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 {<br>\r\n             \ubc18\ud658 $this&gt;\uac8c\uc774\ud2b8\uc6e8\uc774&gt;\ucda9\uc804(\ub370\uc774\ud130);}}}}<br>\r\n<\/code><\/pre>\n<h2>Laravel\uc758 \uc804\uccb4 \uad6c\ud604 \uc608\uc81c<\/h2>\n<p>\uc544\ub798\ub294 \ub77c\ub77c\ubca8\uc758 PayTabs \ud1b5\ud569\uc744 \uc704\ud55c \uc804\uccb4 \ucee8\ud2b8\ub864\ub7ec \uc608\uc81c\uc785\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-php\">&lt;?php<br>\r\n<br>\r\n\ub124\uc784\uc2a4\ud398\uc774\uc2a4 App\\Http\\Controllers.<br>\r\n<br>\r\nIlluminate\\Http\\Request\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br>\r\n<br>\r\n\uacb0\uc81c \ucee8\ud2b8\ub864\ub7ec \ud074\ub798\uc2a4 \ucee8\ud2b8\ub864\ub7ec\ub97c \ud655\uc7a5\ud569\ub2c8\ub2e4. <br>\r\n{<br>\r\n    protected paytabsConfig=[<br>\r\n      'profile_id=&gt;env(PAYTABS_PROFILE_ID),<br>\r\n      'server_key=&gt;env(PAYTABS_SERVER_KEY),<br>\r\n      'region=&gt;SAU',\/\/ \uc0ac\uc6b0\ub514 \uc544\ub77c\ube44\uc544  <br>\r\n      '\uc5d4\ub4dc\ud3ec\uc778\ud2b8=https:\/\/secure.paytabs.sa\/payment\/request'<br>\r\n    ];<br>\r\n<br>\r\n    \uacf5\uc6a9 \ud568\uc218 initiate(\uc694\uccad \uc694\uccad)<br>\r\n    {    <br>\r\n          \ub370\uc774\ud130 = [<br>\r\n            profile_idthispaytabConfigprofileid,<br>\r\n            tran_type=\ud310\ub9e4,<br>\r\n            tran_class=ecom,<br>\r\n            \uce74\ud2f0\ub450\ub2c8\ud0a4\ub4dc(),<br>\r\n            \uc7a5\ubc14\uad6c\ub2c8\uc124\uba85\uc81c\ud488 \uad6c\ub9e4\".<br>\r\n            \uae08\uc561 \uc694\uccad\uae08\uc561*100;\/\/ \uc13c\ud2b8\ub85c \ubcc0\ud658<br>\r\n            <br>\r\n            <br>\r\n            <br>\r\n            <br>\r\n            <br>\r\n            <br>\r\n              \ud1b5\ud654 = SAR ,<br>\r\n               \ucf5c\ubc31 urlroute(payment.callback)\ub97c \ud638\ucd9c\ud558\uba74  <br>\r\n               urlroute(payment.thankyou)\ub97c \ubc18\ud658\ud569\ub2c8\ub2e4.  <br>\r\n<br>\r\n               customer_details[<br>\r\n                   \uc774\ub984 \uc694\uccad\uba85.<br>\r\n                   \uc774\uba54\uc77c \uc694\uccad\uba54\uc77c ,<br>\r\n                   \uc804\ud654 \uc694\uccad\uc804\ud654 .<br>\r\n                   street1 addressline1 , <br>\r\n                   \ub9ac\uc57c\ub4dc \uc2dc , <br>\r\n                   NSA , \uad6d\uac00 SA <br>\r\n                  ZIP NULL]].<br>\r\n<br>\r\n          \uc11c\uba85 \ud574\uc2dc_hmac('sha256', \uc784\ud3ec\ub529(\"\", \ubc30\uc5f4 \uac12 \ub370\uc774\ud130)), \uc774\ud398\uc774\ud0ed\ucee8\ud53c\uadf8\uc11c\ubc84\ud0a4);<br>\r\n<br>\r\n          \uc751\ub2f5 Http::asForm()-&gt;post(thispaytabConfigendpoint \ubc30\uc5f4\ubcd1\ud569 \ub370\uc774\ud130 [\uc11c\uba85 \uc11c\uba85]);;<br>\r\n<br>\r\n          If(response success()){<br>\r\n              \ub9ac\ub514\ub809\uc158(responsejson() \ub9ac\ub514\ub809\uc158 URL)\uc744 \ubc18\ud658\ud569\ub2c8\ub2e4.<br>\r\n          }ELSE{ABORT500);}}<br>\r\n<br>\r\n<br>\r\n\uacf5\uac1c \ud568\uc218 \ucf5c\ubc31(\uc694\uccad \uc694\uccad){ <br>\r\n<br>\r\nIf(! \ud574\uc2dc \uac19\uc74c(\uc694\uccad \uc11c\uba85\uc774 \uc11c\uba85\uc744 \uacc4\uc0b0\ud568)) abort403).<br>\r\n<br>\r\n\uc8fc\ubb38 \uc8fc\ubb38::\ucc3e\uae30(\uc694\uccad \uce74\ud2b8 ID);;<br>\r\n<br>\r\nSwitch(strtolower(\uc694\uccad\uc751\ub2f5\uc0c1\ud0dc)){<br>\r\n<br>\r\n\ucf00\uc774\uc2a4\uac00 \uc2b9\uc778\ub418\uc5c8\uc2b5\ub2c8\ub2e4.<br>\r\n<br>\r\nOrdermarkAsPaid().<br>\r\n<br>\r\n\ud734\uc2dd.<br>\r\n<br>\r\n\uae30\ubcf8\uac12\uc785\ub2c8\ub2e4.<br>\r\n<br>\r\nOrdermarkAsFailed();}}<br>\r\n<br>\r\n}<br>\r\n<\/code><\/pre>\n<h2>PHP \ud504\ub808\uc784\uc6cc\ud06c\uc5d0 \uad6c\uc560\ubc1b\uc9c0 \uc54a\ub294 \uc11c\ube44\uc2a4 \ud074\ub798\uc2a4 \ub514\uc790\uc778<\/h2>\n<p>\ub77c\ub77c\ubca8\uc774 \uc544\ub2cc \ud504\ub85c\uc81d\ud2b8\uc758 \uacbd\uc6b0 \uacb0\uc81c \uc11c\ube44\uc2a4 \ud074\ub798\uc2a4\ub294 \ub2e4\uc74c\uacfc \uac19\uc774 \uc124\uacc4\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n<pre><code class=\"language-php\"> <br>\r\n\uc911\ub3d9 \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4{\uc911\ub3d9 \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4{<br>\r\npublic function processPayment(float \uae08\uc561 \ubb38\uc790\uc5f4 \ud1b5\ud654 \ubc30\uc5f4 customerData): array;}<br>\r\n<br>\r\n\ucd94\uc0c1 \ud074\ub798\uc2a4 AbstractMiddleEastProcessor\ub294 MiddleEastPaymentInterface\ub97c \uad6c\ud604\ud569\ub2c8\ub2e4{<br>\r\n<br>\r\n\ubcf4\ud638\ub41c \uad6c\uc131 = [].<br>\r\n\ubcf4\ud638\ub41c \ud14c\uc2a4\ud2b8 \ubaa8\ub4dc = \uac70\uc9d3;<br>\r\n<br>\r\n\uacf5\uc6a9 \ud568\uc218 \uc0dd\uc131\uc790(bool testMode=false){<br>\r\n\uc774 \ud14c\uc2a4\ud2b8\ubaa8\ub4dc=\ud14c\uc2a4\ud2b8\ubaa8\ub4dc;}<br>\r\n<br>\r\n\ucd94\uc0c1 \ubcf4\ud638 \ud568\uc218\ub294 \uc11c\uba85(\ubc30\uc5f4 \ub9e4\uac1c\ubcc0\uc218)\uc744 \uc0dd\uc131\ud569\ub2c8\ub2e4: \ubb38\uc790\uc5f4 ;<br>\r\n<br>\r\n\uc694\uccad \ub370\uc774\ud130\ub97c \uc900\ube44\ud558\ub294 \ucd94\uc0c1 \ubcf4\ud638 \ud568\uc218 (float \uae08\uc561 \ubb38\uc790\uc5f4 \ud1b5\ud654 \ubc30\uc5f4 customerData): array ;}<br>\r\n<br>\r\nPayFortProcessor \ud074\ub798\uc2a4 \ucd94\uc0c1\ubbf8\ub4e4\ub9ac\ud504\ub85c\uc138\uc11c \ud655\uc7a5 {<br>\r\n<br>\r\nprotected function generateSignature(array params){<br>\r\n<br>\r\nksort(params);\/\/\ud0a4 \ub2e8\uacc4: \ud0a4 \uc774\ub984\uc744 \uc54c\ud30c\ubcb3\uc21c\uc73c\ub85c \uc815\ub82c\ud569\ub2c8\ub2e4.<br>\r\n<br>\r\n<br>\r\nreturn strtoupper(hash_hmac('sha256', implode(\"\", params), configSHA phrase));}<br>\r\n<br>\r\n<br>\r\npublic function processPayment(.... .args){<br>\r\n<br>\r\n\uc774 \uc694\uccad \ub370\uc774\ud130 \uc774 \uc900\ube44 \uc694\uccad \ub370\uc774\ud130(args);<br>\r\n<br>\r\n\uc694\uccad_\ub370\uc774\ud130 \uc11c\uba85]= thisgenerateSignature(\uc694\uccad_\ub370\uc774\ud130);<br>\r\n<br>\r\n<br>\r\ncurl options=[CURLOPT_URL https api pay fort com \ud2b8\ub79c\uc7ad\uc158 \uc0dd\uc131,<br>\r\n<br>\r\nCURLOPT_POST \ucc38\uc785\ub2c8\ub2e4,<br>\r\n<br>\r\n\uceec\ub809\ud2b8 \ubc18\ud658 \uc804\uc1a1 \ucc38\uc785\ub2c8\ub2e4,<br>\r\n<br>\r\n\uceec\ub809\ud2b8 \ud3ec\uc2a4\ud2b8 \ud544\ub4dc http \ube4c\ub4dc \ucffc\ub9ac(\uc694\uccad \ub370\uc774\ud130)].<br>\r\n<br>\r\n<br>\r\nch curl_init();<br>\r\n<br>\r\nforeach(curl \uc635\uc158\uc744 \uc635\uc158 \uac12\uc73c\ub85c){curl setopt(ch \uc635\uc158 \uac12);}<br>\r\n<br>\r\n\uacb0\uacfc curl_exec(ch);<br>\r\n<br>\r\n<br>\r\nif(json validate(result)){return json decode(result true);}else{throw new RuntimeException()}}}<br>\r\n<br>\r\n<\/code><\/pre>\n<p>\uc77c\ubc18\uc801\uc778 \ubb38\uc81c\uc5d0 \ub300\ud55c \uc194\ub8e8\uc158<\/p>\n<p>\uc544\ub78d\uc5b4 \ubb38\uc790 \uc778\ucf54\ub529 \uad00\ub828 \ubb38\uc81c<\/p>\n<pre><code class=\"language-php\"><br>\r\nmb_internal \uc778\ucf54\ub529(\"UTF-8\").<br>\r\n<br>\r\n<br>\r\n\uc124\uba85 iconv(mb \uac10\uc9c0 \uc778\ucf54\ub529 \uc124\uba85), \"UTF-8\",\uc124\uba85 );<br>\r\n<\/code><\/pre>\n<p>\ud45c\uc900 \uc2dc\uac04\ub300 \ucc98\ub9ac(\uac78\ud504 \ud45c\uc900\uc2dc GST +4)<br \/>\n\ub0a0\uc9dc_\uae30\ubcf8_\uc2dc\uac04\ub300_\uc124\uc815 \uc544\uc2dc\uc544 \ub9ac\uc57c\ub4dc ;<\/p>\n<p>\ud604\uc9c0\ud654 \uc624\ub958 \uba54\uc2dc\uc9c0<\/p>\n<pre><code class=\"language-php\"> <br>\r\n\uc544\ub78d\uc5b4\uba54\uc2dc\uc9c0 [<br>\r\n\uacb0\uc81c \uc131\uacf5 \uc5ec\ubd80\uac00 \ud45c\uc2dc\ub429\ub2c8\ub2e4,<br>\r\n\uac70\ubd80\ub428 ].<br>\r\n <br>\r\n <br>\r\n\ud568\uc218 getLocalisedMessage(\ubb38\uc790\uc5f4 \ud0a4 \ubb38\uc790\uc5f4 lang=en ){<br>\r\n <br>\r\nif(lang ar isset(thisarabicMessages[key])){return thisarabic messages[key];}<br>\r\nelse {return defaultEnglishMessages[key];}}<br>\r\n<\/code><\/pre>\n<p>\ud14c\uc2a4\ud2b8 \uc804\ub7b5 \uad8c\uc7a5 \uc0ac\ud56d<\/p>\n<p>1 \uc0cc\ub4dc\ubc15\uc2a4 \uacc4\uc815\uc744 \ub9cc\ub4e4 \ub54c \uc911\ub3d9 \uacc4\uc815(\ud2b9\ud788 \uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544 \ub610\ub294 \uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8)\uc744 \uc120\ud0dd\ud558\uc5ec \ub2e4\uc74c\uacfc \uac19\uc740 \ud604\uc9c0 \uae30\ub2a5\uc744 \ud14c\uc2a4\ud2b8\ud558\uc138\uc694.<\/p>\n<ul>\n<li>MADA\/SADAD \uacb0\uc81c \uc808\ucc28<\/li>\n<li>\uc544\ub78d\uc5b4 \uc778\ud130\ud398\uc774\uc2a4 \ub514\uc2a4\ud50c\ub808\uc774 \uc815\ud655\uc131<\/li>\n<li>GST \ud0c0\uc784\uc2a4\ud0ec\ud504\uac00 \uc62c\ubc14\ub978\uac00\uc694?<\/li>\n<\/ul>\n<p>2 \ub2e4\uc591\ud55c \uc740\ud589 \uac70\ubd80 \uc751\ub2f5\uc744 \uc2dc\ubbac\ub808\uc774\uc158\ud558\uc5ec \uc62c\ubc14\ub978 \ucc98\ub9ac\ub97c \ubcf4\uc7a5\ud569\ub2c8\ub2e4.<\/p>\n<pre><code class=\"language-php\"><br>\r\ntestCards [<br>\r\nmada_test : [ \ubc88\ud638 : \"4543470000000005\", \uc751\ub2f5_\ucf54\ub4dc : \"20064\" ],\/\/SABB \uc740\ud589 \uac70\ubd80 \ucf54\ub4dc \uc608\uc81c...] ]]...<br>\r\n<\/code><\/pre>\n<p>\uc704\uc758 \ub0b4\uc6a9\uc740 \uae30\ubcf8 \ud1b5\ud569\ubd80\ud130 \uace0\uae09 \uace0\ub824 \uc0ac\ud56d\uae4c\uc9c0 \ubaa8\ub4e0 \ubc94\uc704\uc758 \uc9c0\uce68\uc744 \ub2e4\ub8e8\uace0 \uc788\uc2b5\ub2c8\ub2e4. \uc2e4\uc81c \uad6c\ud604\uc744 \uc704\ud574\uc11c\ub294 \uac01 \uc804\uc790\uacb0\uc81c \ub300\ud589\uc0ac\uc758 \ucd5c\uc2e0 API \uc124\uba85\uc11c\ub97c \uc8fc\uc758 \uae4a\uac8c \uc77d\uace0 \ud604\uc9c0 \ubc95\ub960 \uace0\ubb38\uacfc \uc0c1\ub2f4\ud558\uc5ec \ud604\uc9c0 \uaddc\uc815\uc744 \uc644\ubcbd\ud558\uac8c \uc900\uc218\ud574\uc57c \ud569\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>PHP\ub85c \uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c \ud1b5\ud569\ud558\uae30 PHP\uc5d0\uc11c \uc911\ub3d9 \uacb0\uc81c \uc2dc\uc2a4\ud15c\uc744 \ud1b5\ud569\ud558\ub824\uba74...<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[35],"tags":[],"class_list":["post-2845","post","type-post","status-publish","format-standard","hentry","category-35"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.9 (Yoast SEO v23.7) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f - DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.deekpay.com\/ko\/2025\/05\/19\/\u5982\u4f55\u7528php\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\" \/>\n<meta property=\"og:description\" content=\"\u4f7f\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf \u8981\u5728PHP\u4e2d\u96c6\u6210\u4e2d\u4e1c\u5730\u533a\u7684\u652f\u4ed8\u7cfb&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.deekpay.com\/ko\/2025\/05\/19\/\u5982\u4f55\u7528php\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\/\" \/>\n<meta property=\"og:site_name\" content=\"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8\" \/>\n<meta property=\"article:published_time\" content=\"2025-05-19T11:08:08+00:00\" \/>\n<meta name=\"author\" content=\"deekpay\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\uae00\uc4f4\uc774\" \/>\n\t<meta name=\"twitter:data1\" content=\"deekpay\" \/>\n\t<meta name=\"twitter:label2\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/\"},\"author\":{\"name\":\"deekpay\",\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d\"},\"headline\":\"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\",\"datePublished\":\"2025-05-19T11:08:08+00:00\",\"dateModified\":\"2025-05-19T11:08:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/\"},\"wordCount\":62,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.deekpay.com\/#organization\"},\"articleSection\":[\"\u4e2d\u4e1c\u652f\u4ed8\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/\",\"url\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/\",\"name\":\"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f - DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8\",\"isPartOf\":{\"@id\":\"https:\/\/www.deekpay.com\/#website\"},\"datePublished\":\"2025-05-19T11:08:08+00:00\",\"dateModified\":\"2025-05-19T11:08:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.deekpay.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.deekpay.com\/#website\",\"url\":\"https:\/\/www.deekpay.com\/\",\"name\":\"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u652f\u4ed8\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.deekpay.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.deekpay.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.deekpay.com\/#organization\",\"name\":\"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8\u548cUPI\u652f\u4ed8\u670d\u52a1\u5546\",\"url\":\"https:\/\/www.deekpay.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/deekpay.com\/wp-content\/uploads\/2024\/11\/LOGO-1.png\",\"contentUrl\":\"https:\/\/deekpay.com\/wp-content\/uploads\/2024\/11\/LOGO-1.png\",\"width\":649,\"height\":191,\"caption\":\"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8\u548cUPI\u652f\u4ed8\u670d\u52a1\u5546\"},\"image\":{\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d\",\"name\":\"deekpay\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/485e931d0b237ba5cfa6c7cea419d88f7e3258b4837d99943e099ff93b458f8c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/485e931d0b237ba5cfa6c7cea419d88f7e3258b4837d99943e099ff93b458f8c?s=96&d=mm&r=g\",\"caption\":\"deekpay\"},\"sameAs\":[\"https:\/\/deekpay.com\"],\"url\":\"https:\/\/www.deekpay.com\/ko\/author\/deekpay\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f - DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.deekpay.com\/ko\/2025\/05\/19\/\u5982\u4f55\u7528php\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\/","og_locale":"ko_KR","og_type":"article","og_title":"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f","og_description":"\u4f7f\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf \u8981\u5728PHP\u4e2d\u96c6\u6210\u4e2d\u4e1c\u5730\u533a\u7684\u652f\u4ed8\u7cfb&hellip;","og_url":"https:\/\/www.deekpay.com\/ko\/2025\/05\/19\/\u5982\u4f55\u7528php\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f\/","og_site_name":"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8","article_published_time":"2025-05-19T11:08:08+00:00","author":"deekpay","twitter_card":"summary_large_image","twitter_misc":{"\uae00\uc4f4\uc774":"deekpay","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"5\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#article","isPartOf":{"@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/"},"author":{"name":"deekpay","@id":"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d"},"headline":"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f","datePublished":"2025-05-19T11:08:08+00:00","dateModified":"2025-05-19T11:08:08+00:00","mainEntityOfPage":{"@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/"},"wordCount":62,"commentCount":0,"publisher":{"@id":"https:\/\/www.deekpay.com\/#organization"},"articleSection":["\u4e2d\u4e1c\u652f\u4ed8"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/","url":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/","name":"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f - DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u56db\u65b9\u652f\u4ed8","isPartOf":{"@id":"https:\/\/www.deekpay.com\/#website"},"datePublished":"2025-05-19T11:08:08+00:00","dateModified":"2025-05-19T11:08:08+00:00","breadcrumb":{"@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.deekpay.com\/2025\/05\/19\/%e5%a6%82%e4%bd%95%e7%94%a8php%e9%9b%86%e6%88%90%e4%b8%ad%e4%b8%9c%e6%94%af%e4%bb%98%e7%b3%bb%e7%bb%9f%ef%bc%9f\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.deekpay.com\/"},{"@type":"ListItem","position":2,"name":"\u5982\u4f55\u7528PHP\u96c6\u6210\u4e2d\u4e1c\u652f\u4ed8\u7cfb\u7edf\uff1f"}]},{"@type":"WebSite","@id":"https:\/\/www.deekpay.com\/#website","url":"https:\/\/www.deekpay.com\/","name":"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8|\u5370\u5ea6UPI\u652f\u4ed8|\u5370\u5ea6\u4e09\u65b9\u652f\u4ed8","description":"","publisher":{"@id":"https:\/\/www.deekpay.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.deekpay.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.deekpay.com\/#organization","name":"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8\u548cUPI\u652f\u4ed8\u670d\u52a1\u5546","url":"https:\/\/www.deekpay.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.deekpay.com\/#\/schema\/logo\/image\/","url":"https:\/\/deekpay.com\/wp-content\/uploads\/2024\/11\/LOGO-1.png","contentUrl":"https:\/\/deekpay.com\/wp-content\/uploads\/2024\/11\/LOGO-1.png","width":649,"height":191,"caption":"DEEKPAY-\u5370\u5ea6\u539f\u751f\u652f\u4ed8\u548cUPI\u652f\u4ed8\u670d\u52a1\u5546"},"image":{"@id":"https:\/\/www.deekpay.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d","name":"deekpay","image":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.deekpay.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/485e931d0b237ba5cfa6c7cea419d88f7e3258b4837d99943e099ff93b458f8c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/485e931d0b237ba5cfa6c7cea419d88f7e3258b4837d99943e099ff93b458f8c?s=96&d=mm&r=g","caption":"deekpay"},"sameAs":["https:\/\/deekpay.com"],"url":"https:\/\/www.deekpay.com\/ko\/author\/deekpay\/"}]}},"_links":{"self":[{"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts\/2845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/comments?post=2845"}],"version-history":[{"count":1,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts\/2845\/revisions"}],"predecessor-version":[{"id":2846,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts\/2845\/revisions\/2846"}],"wp:attachment":[{"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/media?parent=2845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/categories?post=2845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/tags?post=2845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}