{"id":3418,"date":"2025-07-31T12:34:19","date_gmt":"2025-07-31T04:34:19","guid":{"rendered":"https:\/\/www.deekpay.com\/?p=3418"},"modified":"2025-07-31T12:34:19","modified_gmt":"2025-07-31T04:34:19","slug":"%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3","status":"publish","type":"post","link":"https:\/\/www.deekpay.com\/ko\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/","title":{"rendered":"GCash \ub610\ub294 Maya \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4\uc640 PHP\/\ud30c\uc774\uc36c \uc778\ud130\ud398\uc774\uc2a4 \uc5f0\ub3d9\ud558\uae30"},"content":{"rendered":"<h1>GCash \ubc0f Maya \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \uc5f0\ub3d9 \uac00\uc774\ub4dc<\/h1>\n<h2>GCash \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9<\/h2>\n<h3>PHP \uad6c\ud604<\/h3>\n<pre><code class=\"language-php\">&lt;?php<br>\r\n\/\/ GCash API \uad6c\uc131<br>\r\n$gcash_api_key = 'YOUR_GCASH_API_KEY';<br>\r\n$gcash_secret = 'YOUR_GCASH_SECRET';<br>\r\n$gcash_base_url = 'https:\/\/api.gcash.com';<br>\r\n<br>\r\n\/\/ \uacb0\uc81c \uc694\uccad \uc0dd\uc131<br>\r\nfunction createGcashPayment($amount, $reference_id, $callback_url) {<br>\r\n    \uae00\ub85c\ubc8c $gcash_api_key, $gcash_secret, $gcash_base_url;<br>\r\n    <br>\r\n    $endpoint = '\/payments\/v1\/payments';<br>\r\n    $\ud0c0\uc784\uc2a4\ud0ec\ud504 = time();<br>\r\n    <br>\r\n    \/\/ \uc694\uccad \ub370\uc774\ud130 \uad6c\uc131<br>\r\n    $\ub370\uc774\ud130 = [<br>\r\n        'amount' =&gt; number_format($amount, 2),<br>\r\n        '\ud1b5\ud654' =&gt; 'PHP',<br>\r\n        'payment_method' =&gt; ['type' =&gt; 'GCASH'],<br>\r\n        '\ucc38\uc870_id' =&gt; $reference_id,<br>\r\n        'redirect_urls' =&gt; [<br>\r\n            '\uc131\uacf5' =&gt; \"$callback_url?status=\uc131\uacf5\",<br>\r\n            '\uc2e4\ud328' =&gt; \"$callback_url?status=\uc2e4\ud328\",<br>\r\n            '\ucde8\uc18c' =&gt; \"$callback_url?status=\ucde8\uc18c\"<br>\r\n        ]<br>\r\n    ];<br>\r\n    <br>\r\n    \/\/ \uc11c\uba85 \uc0dd\uc131<br>\r\n    $signature_data = \"POST\\n{$endpoint}\\n{$timestamp}\\n\" . json_encode($data);<br>\r\n    $signature = hash_hmac('sha256', base64_encode($signature_data), base64_encode($gcash_secret));<br>\r\n    <br>\r\n    \/\/ HTTP \uc694\uccad \ud5e4\ub354<br>\r\n    $\ud5e4\ub354 = [<br>\r\n        \"\ucf58\ud150\uce20 \uc720\ud615: \uc560\ud50c\ub9ac\ucf00\uc774\uc158\/json\".<br>\r\n        \"\uad8c\ud55c \ubd80\uc5ec: \ubb34\uae30\uba85 {$gcash_api_key}\", \"\uad8c\ud55c \ubd80\uc5ec: \ubb34\uae30\uba85 {$gcash_api_key}\".<br>\r\n        \"X-GCash-\ud0c0\uc784\uc2a4\ud0ec\ud504: {$\ud0c0\uc784\uc2a4\ud0ec\ud504}\",<br>\r\n        \"X-GCash-\uc11c\uba85: {$\uc11c\uba85}\"<br>\r\n    ];<br>\r\n    <br>\r\n     \/\/ cURL \uc694\uccad <br>\r\n     \uc2dc\ub3c4 {<br>\r\n         \ubc18\ud658 makeApiRequest(\"{$gcash_base_url}{$endpoint}\", json_encode($data), true);<br>\r\n     } catch (Exception) {<br>\r\n         \uc0c8\ub85c\uc6b4 \uc608\uc678(\"GCASH \uacb0\uc81c\ub97c \uc0dd\uc131\ud558\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\")\ub97c \ub358\uc9d1\ub2c8\ub2e4;<br>\r\n     }<br>\r\n}<br>\r\n<br>\r\n\ud568\uc218 makeApiRequest(\ubb38\uc790\uc5f4 url \ubb38\uc790\uc5f4 \ub370\uc774\ud130 bool isPost): array|false {  <br>\r\n   \/* \uc5ec\uae30 \uad6c\ud604 *\/<br>\r\n}<br>\r\n<\/code><\/pre>\n<h3>Python \uad6c\ud604<\/h3>\n<pre><code class=\"language-python\">\uac00\uc838\uc624\uae30 \uc694\uccad<br>\r\n\ud574\uc2dc\ub9ac\ube0c \uac00\uc838\uc624\uae30 <br>\r\nhmac \uac00\uc838\uc624\uae30 <br>\r\nbase64 \uac00\uc838\uc624\uae30 <br>\r\n\uac00\uc838\uc624\uae30 \uc2dc\uac04 <br>\r\njson \uac00\uc838\uc624\uae30 <br>\r\n<br>\r\n\ud074\ub798\uc2a4 GcashPayment.<br>\r\n    <br>\r\ndef __init__(self api_key secret).<br>\r\nself.api_key API \ud0a4 self.secret \ube44\ubc00 self.base URL https:\/\/api.gcash.com<br>\r\n    <br>\r\ndef create_payment(self \uae08\uc561 \ucc38\uc870 ID \ucf5c\ubc31 URL)::<br>\r\n \uc5d4\ub4dc\ud3ec\uc778\ud2b8 \/payments\/v1\/payments \ud0c0\uc784\uc2a4\ud0ec\ud504 int(time.time())<br>\r\n        <br>\r\n \ub370\uc774\ud130 \uae08\uc561 f{float(amount):.2f} \ud1b5\ud654 PHP \uacb0\uc81c\uc218\ub2e8 \uc720\ud615 GCASH \ucc38\uc870 \uc544\uc774\ub514 \ucc38\uc870 \uc544\uc774\ub514 \ub9ac\ub514\ub809\uc158 URL \uc131\uacf5 f{\ucf5c \ubc31URL \uc0c1\ud0dc \uc131\uacf5 \uc2e4\ud328 f{\ucf5c \ubc31\uc720\ub7f4 \uc0c1\ud0dc \uc2e4\ud328 \ucde8\uc18c f \ucf5c \ubc31\uc720\ub7f4 \uc0c1\ud0dc \ucde8\uc18c<br>\r\n        <br>\r\n \uc11c\uba85 \ub370\uc774\ud130 POST\\n \ub05d\uc810 \\n str(\ud0c0\uc784\uc2a4\ud0ec\ud504)\\n +json.dumps(\ub370\uc774\ud130)<br>\r\n \uc11c\uba85 hmac.new(base64.b64encode(self.secret.encode()) base64.b6encode(signatur_data.encode()) hashlib.sha256).hexdigest())<br>\r\n        <br>\r\n \ud5e4\ub354 \ucf58\ud150\uce20 \uc720\ud615 \uc560\ud50c\ub9ac\ucf00\uc774\uc158\/json \uad8c\ud55c \ubd80\uc5ec\uc790 {self.api \ud0a4 X-GCash-\ud0c0\uc784\uc2a4\ud0ec\ud504 \uc2a4\ud2b8\ub9c1(\ud0c0\uc784\uc2a4\ud0ec\ud504) X-GCash-Signatur \uc11c\uba85<br>\r\n        <br>\r\n \uc751\ub2f5 \uc694\uccad.post(f\"{self.base url}{\ub05d\uc810}\" jso=\ub370\uc774\ud130 \ud5e4\ub354=\ud5e4\ub354)<br>\r\n response.raise_for_status()<br>\r\n \uc751\ub2f5.json() \ubc18\ud658<br>\r\n<br>\r\n<\/code><\/pre>\n<h2>\ub9c8\uc57c \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9<\/h2>\n<h3>PHP \uad6c\ud604<\/h3>\n<pre><code class=\"language-php\"><br>\r\npublic function createCheckout(float \uae08\uc561 \ubb38\uc790\uc5f4 requestReferenceNumber \ubc30\uc5f4 redirectUrls \uc2dc\ub3c4 \ud398\uc774\ub85c\ub4dc [ totalAmount [ \uac12 \uae08\uc561 \ud1b5\ud654 PHP items [[ \uc774\ub984 \ud488\ubaa9\uba85 \uc218\ub7c9 | \uac00\uaca9 \uac12 (amoun\/100)*100 \ucf54\ub4dc item001 \uc124\uba85 \uc0d8\ud50c \ud488\ubaa9]] requestReferenceNumber \uc694\uccad \ucc38\uc870 \ubc88\ud638 \ub9ac\ub514\ub809\uc158 URL \ub9ac\ub514\ub809\uc158 URL ] ] ] ]<br>\r\n<br>\r\nresponse this-&gt;makeRequest('\/checkout\/v1\/\uccb4\ud06c\uc544\uc6c3 \ud398\uc774\ub85c\ub4dc); if (!isset(response['checkoutId'])) throw new Exception('Failed to create checkout').<br>\r\n<br>\r\nreturn [ checkoutUl response['redirectUl'] checkoutId response['checkoutId'] ]; catch (Exception e) error log(e-&gt;getMessage()); return false. }<br>\r\n<br>\r\nprivate function makeRequest(string \uacbd\ub85c \ubc30\uc5f4 \ub370\uc774\ud130 \ubb38\uc790\uc5f4 \uba54\uc11c\ub4dc POST') curl curl_init(this-&gt;api Url \uacbd\ub85c); curl_setopt_array(curl CURLOPT_. RETURNTRANSFER true CURLOPT_CUSTOMREQUEST method CURLOPT_POSTFIELDS json encode(data)); headers ['Content-Type application\/json Authorization Basic .base6 encode(this-&gt;checOutKey )]; curl setopt(curl CURLOPT HTTPHEADER headers);<br>\r\n<br>\r\n\uacb0\uacfc cur_exec(curl); errno cur_errno(curl); \uc624\ub958 cur_error(curl); if errno throw new Exception(Curl \uc624\ub958 \uc624\ub958).<br>\r\n<br>\r\nhttpCode cur_getinfo(cu CURLINFO HTTP CODE if httpCode &gt;=400 parse result ?json decode(result true :[]; message parsed['message??parsed[0][' message]? ?\uc54c \uc218 \uc5c6\ub294 \ub9c8\uc57c API \uc624\ub958'; throw new Exception(\ub9c8\uc57c API \uc624\ub958 \uba54\uc2dc\uc9c0 httpCod finally cu_close(cu );<br>\r\n<br>\r\n\ubc18\ud658 \uc544\ub4e4 \ub514\ucf54\ub4dc(\uacb0\uacfc \ud2b8\ub8e8 ); } ```<br>\r\n<br>\r\n \ud30c\uc774\uc36c \uad6c\ud604 ```python import requires import bas664 import jsor from typing impo Dict \uc784\uc758 \uc120\ud0dd\uc801 \ud074\ub798\uc2a4 May Payment def __init__(sel checout_k y your_may \uccb4\ud06c\uc720\ud2b8\ud0a4 \uc138 \ub808\ud2b8 \uc544\uc774 \ub2f9\uc2e0\uc758_\ub9c8\uc57c \ud06c\ub808\ud2b8 k y a i_u l https:\/ pg sand ox pay ay . om).<br>\r\n<br>\r\n \uc5d8\ud504 \uccb5 \ucfe0\ud2b8 \ucf00 \uccb4\ud06c \ud2f0 \ucf00\uc774 \uc5d8\ud504 \uc2dc\ud050 \uc5d0\ud2b8 \ucf00 \uc2dc\ud050 _\ucf00\uc774 \uc5d8\ud504 \uc544 \uc544\uc774 \uc6b8 AP _\uc6b0\ub974 \ub514\ud504 \ud06c\ub808 \ud14c_\uce58 \ucfe0 \uc140 \uc554 \uc5b8\ud2b8 \ud50c\ub85c\uc544 \ub808\ud018\uc2a4\ud2b8 \ub808 \ud504 \ub974 \ub10c \uc2a4 \ub118\ubc84 \ud2b8\ub808 \ub514 \ub809\ud2b8\uc720 \uc5d8\uc2a4 \ub514\ud2b8[\uc2a4\ud2b8\ub9bc \uc2a4\ud0ef ] \ub514\ud2b8[\uc2a4\ud2b8\ub9bc \uc548 ].<br>\r\n<br>\r\n\ud398\uc774\ub85c\ub4dc \ucd1d \ud0d1\uc7ac\ub7c9 \uae08\uc561 \ud604\ubb3c \uac00\uaca9 \ud3c9\uac00 \ub77c\uc6b4\ub4dc(\uae08\uc561 *10)\/100 \ucf54\ub370\uc787 O01 \uc124\uba85 Sam le tem re uestRefere ce um er requ stR ferenc Numbe redi ectU l redir ctUr s ]\ub97c \uc785\ub825\ud558\uc138\uc694.<br>\r\n<br>\r\nRESPONS E SELF._MA E_REQ EST \/CH CK UT V1\/CH C OUT PAYLO D)<br>\r\n<br>\r\n\uc751\ub2f5\uc774 \uc5c6\uac70\ub098 \uc751\ub2f5\uc774 \uc5c6\ub294 \uacbd\uc6b0 se.get( \uccb4\ud06c ): raise Except on(Fai ed o cre te Ma ya ch c out )<br>\r\n<br>\r\n\ub808\ud2b8 \ub9ad \ub515 \uccb4 \ucfe0 \uc6b0\ub974 \ub808\uc2a4 \uc624 \uc138[\uc5d0\ub4dc \ub809\ud2b8] \uccb4 \ucfe0 \uc6b0\ub974 \uc5d0\uc2a4\ud3ec \uc138[\uc5d0\ub4dc \ub809\ud2b8] )<br>\r\n<br>\r\nef_mak eque t(se pa th str da a Di t ny met od st POS ) &gt; Op iona Dic any].<br>\r\n<br>\r\nrl f {s If.a i_r }{ ath heading s ont nt Typ appli ation\/jso Auth riz tion asic b4encod ((f sel .checou key ).en ode() hex ist()]<br>\r\n<br>\r\nsponse re uests.req est ethod lower() ur heers head rs jso da a)<br>\r\n<br>\r\nSPONS RAISE FOR STA US()<br>\r\n<br>\r\nre urn sponse.jso () \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc608\uc678\ub85c \uc544\ub2c8\uc624 ```\uc785\ub2c8\ub2e4.<br>\r\n<br>\r\n \uc8fc\uc694 \uace0\ub824 \uc0ac\ud56d  <br>\r\n<br>\r\n1 \uc0cc\ub4dc\ubc15\uc2a4 \ud658\uacbd: \ub450 \uacb0\uc81c \uc11c\ube44\uc2a4 \ubaa8\ub450 \uc0cc\ub4dc\ubc15\uc2a4 \ud658\uacbd\uc744 \uc81c\uacf5\ud558\ubbc0\ub85c \uac1c\ubc1c\uc790\ub294 \uba3c\uc800 \ud1b5\ud569 \ud14c\uc2a4\ud2b8\ub97c \uc704\ud574 \ud14c\uc2a4\ud2b8 API \ud0a4\ub97c \uc0ac\uc6a9\ud574\uc57c \ud569\ub2c8\ub2e4.<br>\r\n<br>\r\n2 \uc6f9\ud6c5 \ucc98\ub9ac: \ube44\ub3d9\uae30 \uc54c\ub9bc\uc744 \ucc98\ub9ac\ud558\uace0 \ud2b8\ub79c\uc7ad\uc158 \uc0c1\ud0dc\ub97c \ud655\uc778\ud558\ub3c4\ub85d \uc11c\ubc84 \uc5d4\ub4dc\ud3ec\uc778\ud2b8\ub97c \uc124\uc815\ud574\uc57c \ud569\ub2c8\ub2e4.<br>\r\n<br>\r\n3 \ubcf4\uc548 \uc870\uce58:<br>\r\n- \ubaa8\ub4e0 API \ud638\ucd9c\uc740 HTTPS\ub97c \ud1b5\ud574 \uc774\ub8e8\uc5b4\uc838\uc57c \ud569\ub2c8\ub2e4.  <br>\r\n- API \ud0a4\uc640 \uac19\uc740 \ubbfc\uac10\ud55c \ub370\uc774\ud130\ub294 \ucf54\ub4dc\uc5d0 \ud558\ub4dc\ucf54\ub529\ud574\uc11c\ub294 \uc548 \ub429\ub2c8\ub2e4.  <br>\r\n- IP \ud654\uc774\ud2b8\ub9ac\uc2a4\ud2b8(\uc9c0\uc6d0\ub418\ub294 \uacbd\uc6b0)\ub294 \uc11c\ubc84 IP\ub85c\ub9cc \uc561\uc138\uc2a4\ub97c \ud5c8\uc6a9\ud558\ub3c4\ub85d \uad6c\uc131\ud574\uc57c \ud569\ub2c8\ub2e4.  <br>\r\n<br>\r\n4 \uaddc\uc815 \uc900\uc218 \uc694\uad6c \uc0ac\ud56d:<br>\r\n- PCI DSS\ub97c \uc900\uc218\ud558\ub294 \uc2e0\uc6a9 \uce74\ub4dc \ub370\uc774\ud130 \ucc98\ub9ac(\ud574\ub2f9\ub418\ub294 \uacbd\uc6b0)<br>\r\n- GDPR \ub610\ub294 \uae30\ud0c0 \ud604\uc9c0 \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638 \uaddc\uc815 \uc900\uc218  <br>\r\n<br>\r\n5 \uc624\ub958 \ucc98\ub9ac: \ub124\ud2b8\uc6cc\ud06c \ubb38\uc81c\ub098 \uc77c\uc2dc\uc801\uc778 \uc7a5\uc560\uc5d0 \ub300\uc751\ud558\uae30 \uc704\ud574 \uc7ac\uc2dc\ub3c4 \uba54\ucee4\ub2c8\uc998\uc744 \uad6c\ud604\ud569\ub2c8\ub2e4.<br>\r\n<\/code><\/pre>\n<h2>\uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9\uc744 \uc704\ud55c \uc2ec\uce35\uc801\uc778 \uad6c\ud604 \ubc0f \ubaa8\ubc94 \uc0ac\ub840<\/h2>\n<h3>\uc6f9\ud6c5 \ucc98\ub9ac \uad6c\ud604(PHP \uc608\uc81c)<\/h3>\n<pre><code class=\"language-php\">&lt;?php<br>\r\n\/\/ GCash\/Maya \uc6f9\ud6c5 \ud504\ub85c\uc138\uc11c<br>\r\n\uacb0\uc81c \uc6f9\ud6c5 \ud578\ub4e4\ub7ec \ud074\ub798\uc2a4 {<br>\r\n    \ube44\uacf5\uac1c $apiSecret.<br>\r\n    <br>\r\n    public \ud568\uc218 __construct(\ubb38\uc790\uc5f4 $apiSecret) {<br>\r\n        $this-&gt;apiSecret = $apiSecret;<br>\r\n    }<br>\r\n    <br>\r\n    public function handleGcashWebhook(): void {<br>\r\n        \/\/ \uc11c\uba85 \ud655\uc778<br>\r\n        $signature = $_SERVER['HTTP_X_GCASH_SIGNATURE'] ?? '';<br>\r\n        $payload = file_get_contents('php:\/\/input');<br>\r\n        <br>\r\n        if (!$this-&gt;verifyGcashSignature($signature, $payload)) {<br>\r\n            http_response_code(401).<br>\r\n            \uc885\ub8cc\ud569\ub2c8\ub2e4;<br>\r\n        }<br>\r\n        <br>\r\n        \/\/ \uc6f9\ud6c5 \uc774\ubca4\ud2b8 \ucc98\ub9ac\ud558\uae30<br>\r\n        \uc2dc\ub3c4 {<br>\r\n            \ubc18\ud658 \uacbd\uae30 ($eventType) {<br>\r\n                'payment.success' =&gt; \uc0c8\ub85c\uc6b4 \uc131\uacf5\uacb0\uc81c\uc774\ubca4\ud2b8($\ub370\uc774\ud130),<br>\r\n                'payment.failed' =&gt; \uc0c8\ub85c\uc6b4 \uc2e4\ud328\ud55c\uacb0\uc81c\uc774\ubca4\ud2b8($\ub370\uc774\ud130),<br>\r\n                default =&gt; \uc0c8\ub85c\uc6b4 UnexpectedValueException(\"\uc9c0\uc6d0\ub418\uc9c0 \uc54a\ub294 \uc774\ubca4\ud2b8 \uc720\ud615: {$eventType}\")\uc744 \ub358\uc9d1\ub2c8\ub2e4,<br>\r\n            };<br>\r\n            <br>\r\n            \/\/ TODO: \uc8fc\ubb38 \uc0c1\ud0dc \ubc0f \uae30\ud0c0 \ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \uc5c5\ub370\uc774\ud2b8<br>\r\n            <br>\r\n            http_response_code(200).<br>\r\n            <br>\r\n<\/code><\/pre>\n<h3>Python \ube44\ub3d9\uae30 \uc6f9\ud6c5 \ucc98\ub9ac<\/h3>\n<pre><code class=\"language-python\">fastapi\uc5d0\uc11c FastAPI, Request, HTTPException\uc744 \uac00\uc838\uc635\ub2c8\ub2e4. <br>\r\nhmac \uac00\uc838\uc624\uae30 <br>\r\n\ud574\uc2dc\ub9ac\ube0c \uac00\uc838\uc624\uae30 <br>\r\n<br>\r\napp = FastAPI()<br>\r\n<br>\r\n\ub9c8\uc57c_\uc6f9\ud6c5_\ube44\ubc00 = \"YOUR_WEBHOOK_SECRET\"<br>\r\n<br>\r\n@app.post(\"\/maya\/webhooks\")<br>\r\nasync \uc815\uc758 \ud578\ub4e4_\ub9c8\uc57c_\uc6f9\ud6c5(\uc694\uccad: \uc694\uccad).<br>\r\n    # \uc11c\uba85 \ud655\uc778 <br>\r\n    \uc11c\uba85_\ud5e4\ub354 = request.headers.get(\"X-Maya-Signature\")<br>\r\n    <br>\r\n<\/code><\/pre>\n<h2>\uc77c\ubc18\uc801\uc778 \ubb38\uc81c\uc5d0 \ub300\ud55c \uc194\ub8e8\uc158<\/h2>\n<ol>\n<li>\n<p><strong>\uc778\uc99d\uc11c \uc720\ud6a8\uc131 \uac80\uc0ac \uc2e4\ud328<\/strong>::<\/p>\n<pre><code class=\"language-bash\"># PHP cURL SSL \uc124\uc815(\uac1c\ubc1c \ud658\uacbd\uc5d0\uc11c\ub294 \uc77c\uc2dc\uc801\uc73c\ub85c \uc778\uc99d\uc744 \ube44\ud65c\uc131\ud654\ud560 \uc218 \uc788\uc74c)<br>\r\ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); <br>\r\n<br>\r\n# \ud30c\uc774\uc36c\uc774 SSL \uc124\uc815 \uc694\uccad  <br>\r\nrequests.post(url, verify='\/path\/to\/cert.pem')  <br>\r\n<br>\r\n<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>\ub514\ubc84\uae45 \ud301<\/strong>::<\/p>\n<ul>\n<li>GCash \uc0cc\ub4dc\ubc15\uc2a4 \ud14c\uc2a4\ud2b8 \uce74\ub4dc \ubc88\ud638:<code>4111111111111111<\/code><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\uc131\ub2a5 \ucd5c\uc801\ud654<\/strong>::<\/p>\n<\/li>\n<li>\n<p><strong>\ubcf4\uc548 \uac15\ud654 \uad8c\uc7a5 \uc0ac\ud56d<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\uac70\ub798 \uc0c1\ud0dc \ub3d9\uae30\ud654<\/strong><\/p>\n<\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<\/ol>\n<p>10<\/p>\n<h2>\uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9\uc5d0 \ub300\ud55c \uc2ec\uce35\uc801\uc778 \uad6c\ud604 \ubc0f \ubaa8\ubc94 \uc0ac\ub840(\uacc4\uc18d)<\/h2>\n<h3>5. \uac70\ub798 \uc0c1\ud0dc \ub3d9\uae30\ud654 \uba54\ucee4\ub2c8\uc998<\/h3>\n<h4>\ud65c\uc131 \ucffc\ub9ac\uc758 PHP \uad6c\ud604<\/h4>\n<pre><code class=\"language-php\">\ud568\uc218 getGcashPaymentStatus(string $paymentId): array {<br>\r\n    $endpoint = \"\/payments\/v1\/payments\/{$paymentId}\";<br>\r\n    $\ud0c0\uc784\uc2a4\ud0ec\ud504 = time();<br>\r\n    <br>\r\n    \/\/ \uc11c\uba85 \uc0dd\uc131(\uc774\uc804\uc5d0 \uc815\uc758\ud55c \uc11c\uba85 \ubc29\ubc95 \uc0ac\uc6a9)<br>\r\n    $signature = generateGcashSignature('GET', $endpoint, $timestamp);<br>\r\n    <br>\r\n    \uc2dc\ub3c4 {<br>\r\n        makeApiRequest(<br>\r\n            \"{$gcash_base_url}{$endpoint}\",<br>\r\n            null,<br>\r\n            false, \/\/ GET \uc694\uccad<br>\r\n            [<br>\r\n                \"\uad8c\ud55c \ubd80\uc5ec: \ubb34\uae30\uba85 {$gcash_api_key}\", \"\uad8c\ud55c \ubd80\uc5ec: \ubb34\uae30\uba85 {$gcash_api_key}\".<br>\r\n                \"X-GCash-\ud0c0\uc784\uc2a4\ud0ec\ud504: {$\ud0c0\uc784\uc2a4\ud0ec\ud504}\",<br>\r\n                \"X-GCash-\uc11c\uba85: {$\uc11c\uba85}\"<br>\r\n            ]<br>\r\n        );<br>\r\n    } catch (Exception) {<br>\r\n        \uc0c8\ub85c\uc6b4 \uc608\uc678(\"\uacb0\uc81c \uc0c1\ud0dc\ub97c \uac00\uc838\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\")\ub97c \ub358\uc9d1\ub2c8\ub2e4;<br>\r\n    }<br>\r\n}<br>\r\n<\/code><\/pre>\n<h4>\ud30c\uc774\uc36c \ube44\ub3d9\uae30 \uc0c1\ud0dc \uac80\uc0ac<\/h4>\n<pre><code class=\"language-python\">\ube44\ub3d9\uae30 def check_maya_payment_status(\uc138\uc158, \uccb4\ud06c\uc544\uc6c3_id).<br>\r\n    url = f\"{self.base_url}\/checkout\/v1\/checkouts\/{checkout_id}\"<br>\r\n    <br>\r\n<\/code><\/pre>\n<h3>6. \uc624\ub958 \ucc98\ub9ac \ubc0f \uc7ac\uc2dc\ub3c4 \uba54\ucee4\ub2c8\uc998<\/h3>\n<p><strong>PHP \uc9c0\uc218 \ubc31\uc624\ud504 \uc7ac\uc2dc\ub3c4 \uc608\uc81c<\/strong><\/p>\n<pre><code class=\"language-php\">function makePaymentWithRetry(callable $paymentFn, int maxRetries) { retryCount while (true) { try return paymentFn(); catch PaymentException e if retryCount &gt;= maxRetries throw e; } } }<br>\r\n<br>\r\nsleep(min(pow(2 retryCount rand(1000)\/1000)); retryCount++; } } }<br>\r\n<br>\r\n\/\/ \uc0ac\uc6a9\ubc95.<br>\r\nmakePaymentWithRetry(fn createGcashPayment(...)) ;<br>\r\n<\/code><\/pre>\n<p><strong>\ud30c\uc774\uc36c \ub370\ucf54\ub808\uc774\ud130 \uad6c\ud604<\/strong><\/p>\n<pre><code class=\"language-python\">\ud568\uc218 \ub3c4\uad6c\uc5d0\uc11c \ub7a9 \uac00\uc838\uc624\uae30 <br>\r\n<br>\r\ndef retriable(max_retries=3 backoff_factor=1)::<br>\r\n def decorator(func @wraps(func)<br>\r\n async def wrapper(*args kwargs last_error \uc5c6\uc74c for attempt in range(max_retrieve sleep_time backoff_factor * (2 attempt await asyncio.sleep(sleep_. time)<br>\r\n<br>\r\ntry return await func(*args kwargs except PaymentError as e last_error e raise Retr yExhaustedError from last_error return wrapper return decorator<br>\r\n<br>\r\n@retriable(max_retrie )<br>\r\n\ube44\ub3d9\uae30 \uc815\uc758 \ud504\ub85c\uc138\uc2a4_\ud398\uc774\uba3c().<br>\r\n pass ``<br>\r\n<br>\r\n  <br>\r\n<br>\r\n7.<br>\r\n<br>\r\n8.<br>\r\n<br>\r\n9.<br>\r\n<br>\r\n10<br>\r\n<\/code><\/pre>","protected":false},"excerpt":{"rendered":"<p>GCash \ubc0f Maya \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9 \uac00\uc774\ub4dc GCash \uacb0\uc81c \uc778\ud130\ud398\uc774\uc2a4 \ub3c4\ud0b9...<\/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":[32],"tags":[],"class_list":["post-3418","post","type-post","status-publish","format-standard","hentry","category-32"],"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>\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3 - 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\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3\" \/>\n<meta property=\"og:description\" content=\"\u5bf9\u63a5GCash\u548cMaya\u652f\u4ed8\u63a5\u53e3\u6307\u5357 GCash\u652f\u4ed8\u63a5\u53e3\u5bf9\u63a5&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.deekpay.com\/ko\/2025\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/\" \/>\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-07-31T04:34:19+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=\"6\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/\"},\"author\":{\"name\":\"deekpay\",\"@id\":\"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d\"},\"headline\":\"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3\",\"datePublished\":\"2025-07-31T04:34:19+00:00\",\"dateModified\":\"2025-07-31T04:34:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/\"},\"wordCount\":20,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.deekpay.com\/#organization\"},\"articleSection\":[\"\u83f2\u5f8b\u5bbe\u652f\u4ed8\"],\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/\",\"url\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/\",\"name\":\"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3 - 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-07-31T04:34:19+00:00\",\"dateModified\":\"2025-07-31T04:34:19+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.deekpay.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3\"}]},{\"@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":"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3 - 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\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/","og_locale":"ko_KR","og_type":"article","og_title":"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3","og_description":"\u5bf9\u63a5GCash\u548cMaya\u652f\u4ed8\u63a5\u53e3\u6307\u5357 GCash\u652f\u4ed8\u63a5\u53e3\u5bf9\u63a5&hellip;","og_url":"https:\/\/www.deekpay.com\/ko\/2025\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/","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-07-31T04:34:19+00:00","author":"deekpay","twitter_card":"summary_large_image","twitter_misc":{"\uae00\uc4f4\uc774":"deekpay","\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"6\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#article","isPartOf":{"@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/"},"author":{"name":"deekpay","@id":"https:\/\/www.deekpay.com\/#\/schema\/person\/91e4e842fdd04f8c957a9f642506f51d"},"headline":"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3","datePublished":"2025-07-31T04:34:19+00:00","dateModified":"2025-07-31T04:34:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/"},"wordCount":20,"commentCount":0,"publisher":{"@id":"https:\/\/www.deekpay.com\/#organization"},"articleSection":["\u83f2\u5f8b\u5bbe\u652f\u4ed8"],"inLanguage":"ko-KR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/","url":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/","name":"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3 - 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-07-31T04:34:19+00:00","dateModified":"2025-07-31T04:34:19+00:00","breadcrumb":{"@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.deekpay.com\/2025\/07\/31\/%e7%94%a8php%ef%bc%8fpython%e5%af%b9%e6%8e%a5gcash%e6%88%96maya%e6%94%af%e4%bb%98%e6%8e%a5%e5%8f%a3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.deekpay.com\/"},{"@type":"ListItem","position":2,"name":"\u7528PHP\uff0fPython\u5bf9\u63a5GCash\u6216Maya\u652f\u4ed8\u63a5\u53e3"}]},{"@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\/3418","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=3418"}],"version-history":[{"count":1,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts\/3418\/revisions"}],"predecessor-version":[{"id":3419,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/posts\/3418\/revisions\/3419"}],"wp:attachment":[{"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/media?parent=3418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/categories?post=3418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deekpay.com\/ko\/wp-json\/wp\/v2\/tags?post=3418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}