{"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\/ja\/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\u307e\u305f\u306fMaya Payment Interface\u3068PHP\/Python\u306e\u9023\u643a"},"content":{"rendered":"<h1>GCash \u304a\u3088\u3073 Maya \u652f\u6255\u3044\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3068\u306e\u9023\u643a\u30ac\u30a4\u30c9<\/h1>\n<h2>GCash\u6c7a\u6e08\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u30c9\u30c3\u30ad\u30f3\u30b0<\/h2>\n<h3>PHP\u306e\u5b9f\u88c5<\/h3>\n<pre><code class=\"language-php\">&lt;?php<br>\r\n\/\/ GCash API \u306e\u8a2d\u5b9a<br>\r\n$gcash_api_key = 'YOUR_GCASH_API_KEY'\uff1b<br>\r\n$gcash_secret = 'YOUR_GCASH_SECRET'\uff1b<br>\r\n$gcash_base_url = 'https:\/\/api.gcash.com'\uff1b<br>\r\n<br>\r\n\/\/ \u652f\u6255\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u4f5c\u6210\u3059\u308b<br>\r\nfunction createGcashPayment($amount, $reference_id, $callback_url) {.<br>\r\n    global $gcash_api_key\u3001$gcash_secret\u3001$gcash_base_url\uff1b<br>\r\n    <br>\r\n    $endpoint = '\/payments\/v1\/payments'\uff1b<br>\r\n    $imestamp = time()\uff1b<br>\r\n    <br>\r\n    \/\/ \u30ea\u30af\u30a8\u30b9\u30c8\u30c7\u30fc\u30bf\u3092\u69cb\u7bc9\u3059\u308b<br>\r\n    $data = [<br>\r\n        'amount' =&gt; number_format($amount, 2)\u3001<br>\r\n        'currency' =&gt; 'PHP'\u3001<br>\r\n        'payment_method' =&gt; ['type' =&gt; 'GCASH']\u3001<br>\r\n        'reference_id' =&gt; $reference_id\u3001<br>\r\n        'redirect_urls' =&gt; [<br>\r\n            'success' =&gt; \"$callback_url?status=success\"\u3001<br>\r\n            'failure' =&gt; \"$callback_url?status=failure\"\u3001<br>\r\n            'cancel' =&gt; \"$callback_url?status=cancel\"<br>\r\n        ]<br>\r\n    ];<br>\r\n    <br>\r\n    \/\/ \u7f72\u540d\u3092\u751f\u6210\u3059\u308b<br>\r\n    $signature_data = \"POSTn{$endpoint}n{$imestamp}n\" . json_encode($data)\uff1b<br>\r\n    $signature = hash_hmac('sha256', base64_encode($signature_data), base64_encode($gcash_secret))\uff1b<br>\r\n    <br>\r\n    \/\/ HTTP \u30ea\u30af\u30a8\u30b9\u30c8\u30d8\u30c3\u30c0<br>\r\n    $headers = [<br>\r\n        \u300cContent-Type: application\/json\u300d\u3002<br>\r\n        \u300cAuthorization: Bearer {$gcash_api_key}\u300d\u3001\u300cAuthorisation: Bearer {$gcash_api_key}\u300d\u3002<br>\r\n        \u300cX-GCash-Timestamp: {$imestamp}\"\u3001<br>\r\n        \u300cX-GCash-Signature: {$signature}\"<br>\r\n    ];<br>\r\n    <br>\r\n     \/\/ cURL\u30ea\u30af\u30a8\u30b9\u30c8 <br>\r\n     \u3092\u8a66\u3059\u3002<br>\r\n         return makeApiRequest(\"{$gcash_base_url}{$endpoint}\", json_encode($data), true)\uff1b<br>\r\n     } catch (\u4f8b\u5916) {.<br>\r\n         throw new Exception(\"Failed to create GCASH payment\")\uff1b<br>\r\n     }<br>\r\n}<br>\r\n<br>\r\nfunction makeApiRequest(string url string data bool isPost): array|false {.  <br>\r\n   \/* \u5b9f\u88c5\u306f\u3053\u3061\u3089 *\/<br>\r\n}<br>\r\n<\/code><\/pre>\n<h3>Python\u306e\u5b9f\u88c5<\/h3>\n<pre><code class=\"language-python\">\u8f38\u5165\u30ea\u30af\u30a8\u30b9\u30c8<br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8hashlib <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8 hmac <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8 base64 <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8\u6642\u9593 <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8 json <br>\r\n<br>\r\n\u30af\u30e9\u30b9 GcashPayment.<br>\r\n    <br>\r\ndef __init__(self api_key secret).<br>\r\nself.api_key api key self.secret secret self.base url https:\/\/api.gcash.com<br>\r\n    <br>\r\ndef create_payment(self amount reference id callback url):\uff1a<br>\r\n \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8 \/payments\/v1\/payments \u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7 int(time.time())<br>\r\n        <br>\r\n data amount f{float(amount):.2f} currency PHP payment method type GCASH reference id reference id redirect urls success f{call backurl status success\u5931\u6557 f{call backurl status failure \u30ad\u30e3\u30f3\u30bb\u30eb f call backurl status \u30ad\u30e3\u30f3\u30bb\u30eb<br>\r\n        <br>\r\n signature data POSTn end point \u0b67 str(timestamp)\u0b68 +json.dumps(data)<br>\r\n \u7f72\u540d hmac.new(base64.b64encode(self.secret.encode()) base64.b6encode(signatur_data.encode()) hashlib.sha256).hexdigest()<br>\r\n        <br>\r\n \u30d8\u30c3\u30c0\u30fc Content-Type application\/json Authorization Bearer {self.api key X-GCash-Timestamp str(\u30bf\u30a4\u30e0\u30b9\u30bf\u30f3\u30d7) X-GCash-Signatur signature<br>\r\n        <br>\r\n response requests.post(f\"{self.base url}{end point}\" jso=data headers=headers)<br>\r\n response.raise_for_status()<br>\r\n return response.json()<br>\r\n<br>\r\n<\/code><\/pre>\n<h2>\u30de\u30e4\u30fb\u30da\u30a4\u30e1\u30f3\u30c8\u30fb\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30a4\u30b9\u30fb\u30c9\u30c3\u30ad\u30f3\u30b0<\/h2>\n<h3>PHP\u306e\u5b9f\u88c5<\/h3>\n<pre><code class=\"language-php\"><br>\r\npublic function createCheckout(float amount string requestReferenceNumber array redirectUrls try payload [ totalAmount [ value \u91d1\u984d \u901a\u8ca8 PHPitems [[ name \u5546\u54c1\u540d quantity | price value (amoun\/100)*100 code item001 description Sample item]] requestReferenceNumberrequestReferenceNumber redirectUrl redirectUrls ] ] \u3067\u3059\u3002<br>\r\n<br>\r\nresponse this-&gt;makeRequest('\/checkout\/v1\/checkouts payload); if (!isset(response['checkoutId'])) throw new Exception('Failed to creat\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8\u306e\u4f5c\u6210\u306b\u5931\u6557\u3057\u307e\u3057\u305f')\u3002<br>\r\n<br>\r\nreturn [ checkoutUrl response['redirectUrl'] checkoutId response['checkoutId'] ]; catch (Exception e) error log(e-&gt;getMessage()); return false.}<br>\r\n<br>\r\nprivate function makeRequest(string path array data string method POST') curl curl_init(this-&gt;api Url path); curl_setopt_array(curl CURLOPT_RETURNTRANSFER true CURLOPT_CUSTOMREQUEST method CURLOPT_POSTFIELDS json encode(data)); headers ['Content-Type application\/jsonAuthorization Basic .base6 encode(this-&gt;checOutKey )]; curl setopt(curl CURLOPT HTTPHEADER headers)\uff1b<br>\r\n<br>\r\nresult cur_exec(curl); errno cur_errno(curl); error cur_error(curl); if errno throw new Exception(Curl error error error).<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]['\u30e1\u30c3\u30bb\u30fc\u30b8]??Unknown Maya API erro'; throw new Exception(Maya API Error message httpCod finally cu_close(cu )\uff1b<br>\r\n<br>\r\nreturn son decode(result tru ); } ```.<br>\r\n<br>\r\n Python\u306e\u5b9f\u88c5 ``python import reques import bas664 import jsor from typing impo Dict Any Optional class May Payment def __init__(sel checout_k y your_may .\u30c1\u30a7\u30c3\u30af\u30a2\u30a6\u30c8_k y your_may _check utkey se ret ey your maya s cret k y a i_u l https:\/ pg sand ox pay ay . om).<br>\r\n<br>\r\n elf\u306ech ck ut ke check t k y elf\u306esec et ke secre _ke\u306eelf a i u l ap _ur def cre te_ch ckou sel am unt floa req est ref r nc numbe tr redi ectU ls Di t[str st ] D ct[str An ].<br>\r\n<br>\r\n\u30da\u30a4\u30ed\u30fc\u30c9\u7dcf\u984d \u91d1\u984d \u73fe\u4fa1 PH \u30a4\u30c3\u30c8\u6570 \u540d \u79f0 \u91d1\u984d \u30e9\u30a6\u30f3\u30c9(Amo t *10 )\/100 co de ite O01 descr pt on Sam le tem ReuestRefere Ce um er requ(\u5358\u4f4d:\u767e\u4e07\u5186)\u5358\u4f4d:\u767e\u4e07\u5186(\u5358\u4f4d:\u767e\u4e07\u5186)<br>\r\n<br>\r\n\u5fdc\u7b54\u3059\u308b self._ma_req est \/chk ut v1\/chc outs paylo d)<br>\r\n<br>\r\n\u5fdc\u7b54\u304c\u306a\u3044\u5834\u5408\u3001\u307e\u305f\u306f\u5fdc\u7b54\u304c\u306a\u3044\u5834\u5408\u3001response.get( chec ou d ): raise Except on(Fai ed o cre te Ma ya ch c out )<br>\r\n<br>\r\n[etc.etc.etc.etc.etc.etc.etc.etc.etc.etc.etc.etc.etc.etc.<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\n\u3053\u306e\u3088\u3046\u306a\u5834\u5408\u3001\uff5bs If.a i_r \uff5d{ athheade s ont nt Typ appli ation\/jso Auth riz tion asic b4encod ((f sel .checou key ).en ode() hex ist())] \u3092\u4f7f\u7528\u3057\u307e\u3059\u3002<br>\r\n<br>\r\n\u3092\u4f7f\u7528\u3059\u308b\u3002<br>\r\n<br>\r\nspons raise fo sta us()<br>\r\n<br>\r\n\u8fd4\u308a\u5024 sponse.jso () excep Exce tion as xceptio print(f May API er or exep ion return No ne ```.<br>\r\n<br>\r\n \u4e3b\u306a\u691c\u8a0e\u4e8b\u9805  <br>\r\n<br>\r\n1 \u30b5\u30f3\u30c9\u30dc\u30c3\u30af\u30b9\u74b0\u5883\uff1a\u3069\u3061\u3089\u306e\u6c7a\u6e08\u30b5\u30fc\u30d3\u30b9\u3082\u30b5\u30f3\u30c9\u30dc\u30c3\u30af\u30b9\u74b0\u5883\u3092\u63d0\u4f9b\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u958b\u767a\u8005\u306f\u307e\u305a\u7d71\u5408\u30c6\u30b9\u30c8\u7528\u306e\u30c6\u30b9\u30c8API\u30ad\u30fc\u3092\u4f7f\u7528\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<br>\r\n<br>\r\n2 Webhook\u51e6\u7406\uff1a\u975e\u540c\u671f\u901a\u77e5\u3092\u51e6\u7406\u3057\u3001\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u30b9\u30c6\u30fc\u30bf\u30b9\u3092\u691c\u8a3c\u3059\u308b\u305f\u3081\u306b\u3001\u30b5\u30fc\u30d0\u30fc\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u3092\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308b\u3002<br>\r\n<br>\r\n3 \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\uff1a<br>\r\n- \u3059\u3079\u3066\u306eAPI\u30b3\u30fc\u30eb\u306fHTTPS\u3067\u884c\u308f\u308c\u308b\u3079\u304d\u3067\u3042\u308b\u3002  <br>\r\n- API\u30ad\u30fc\u306e\u3088\u3046\u306a\u6a5f\u5bc6\u30c7\u30fc\u30bf\u3092\u30b3\u30fc\u30c9\u306b\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\u3059\u3079\u304d\u3067\u306f\u306a\u3044\u3002  <br>\r\n- IP\u30db\u30ef\u30a4\u30c8\u30ea\u30b9\u30c8\uff08\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u308b\u5834\u5408\uff09\u306f\u3001\u30b5\u30fc\u30d0\u30fcIP\u3078\u306e\u30a2\u30af\u30bb\u30b9\u306e\u307f\u3092\u8a31\u53ef\u3059\u308b\u3088\u3046\u306b\u8a2d\u5b9a\u3059\u308b\u5fc5\u8981\u304c\u3042\u308a\u307e\u3059\u3002  <br>\r\n<br>\r\n4 \u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u8981\u4ef6<br>\r\n- PCI DSS\u306b\u6e96\u62e0\u3057\u305f\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u30c7\u30fc\u30bf\u306e\u51e6\u7406\uff08\u8a72\u5f53\u3059\u308b\u5834\u5408\uff09<br>\r\n- GDPR\u307e\u305f\u306f\u305d\u306e\u4ed6\u306e\u73fe\u5730\u30d7\u30e9\u30a4\u30d0\u30b7\u30fc\u898f\u5236\u3078\u306e\u5bfe\u5fdc  <br>\r\n<br>\r\n5 \u30a8\u30e9\u30fc\u51e6\u7406\uff1a\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u306e\u554f\u984c\u3084\u4e00\u6642\u7684\u306a\u969c\u5bb3\u306b\u5bfe\u5fdc\u3059\u308b\u305f\u3081\u306e\u518d\u8a66\u884c\u30e1\u30ab\u30cb\u30ba\u30e0\u3092\u5b9f\u88c5\u3059\u308b\u3002<br>\r\n<\/code><\/pre>\n<h2>\u6c7a\u6e08\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u30fb\u30c9\u30c3\u30ad\u30f3\u30b0\u306e\u5fb9\u5e95\u7684\u306a\u5b9f\u88c5\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h2>\n<h3>Webhook\u51e6\u7406\u306e\u5b9f\u88c5\uff08PHP\u306e\u4f8b\uff09<\/h3>\n<pre><code class=\"language-php\">&lt;?php<br>\r\n\/\/ GCash\/Maya Webhook \u30d7\u30ed\u30bb\u30c3\u30b5<br>\r\n\u30af\u30e9\u30b9\u306ePaymentWebhookHandler {\u3002<br>\r\n    private $apiSecret.<br>\r\n    <br>\r\n    public function __construct(string $apiSecret) {<br>\r\n        $this-&gt;apiSecret = $apiSecret\uff1b<br>\r\n    }<br>\r\n    <br>\r\n    \u30d1\u30d6\u30ea\u30c3\u30af\u95a2\u6570 handleGcashWebhook(): void {<br>\r\n        \/\/ \u7f72\u540d\u3092\u691c\u8a3c\u3059\u308b<br>\r\n        $signature = $_SERVER['HTTP_X_GCASH_SIGNATURE'] ?? '';<br>\r\n        $payload = file_get_contents('php:\/\/input')\uff1b<br>\r\n        <br>\r\n        if (!$this-&gt;verifyGcashSignature($signature, $payload)) { {.<br>\r\n            http_response_code(401)\u3002<br>\r\n            \u9000\u5834\u3059\u308b\uff1b<br>\r\n        }<br>\r\n        <br>\r\n        \/\/ \u30a6\u30a7\u30d6\u30d5\u30c3\u30af\u30fb\u30a4\u30d9\u30f3\u30c8\u3092\u51e6\u7406\u3059\u308b<br>\r\n        \u3092\u8a66\u3059\u3002<br>\r\n            return match ($eventType) {.<br>\r\n                'payment.success' =&gt; new SuccessPaymentEvent($data)\u3001<br>\r\n                'payment.failed' =&gt; new FailedPaymentEvent($data)\u3001<br>\r\n                default =&gt; throw new UnexpectedValueException(\"Unsupported event type: {$eventType}\")\u3001<br>\r\n            };<br>\r\n            <br>\r\n            \/\/ TODO: \u30aa\u30fc\u30c0\u30fc\u30fb\u30b9\u30c6\u30fc\u30bf\u30b9\u306e\u66f4\u65b0\u3068\u305d\u306e\u4ed6\u306e\u30d3\u30b8\u30cd\u30b9\u30fb\u30ed\u30b8\u30c3\u30af<br>\r\n            <br>\r\n            http_response_code(200)\u3002<br>\r\n            <br>\r\n<\/code><\/pre>\n<h3>Python\u306e\u975e\u540c\u671fWebhook\u51e6\u7406<\/h3>\n<pre><code class=\"language-python\">from fastapi import FastAPI, Request, HTTPException <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8 hmac <br>\r\n\u30a4\u30f3\u30dd\u30fc\u30c8hashlib <br>\r\n<br>\r\napp = FastAPI()<br>\r\n<br>\r\nMAYA_WEBHOOK_SECRET = \"your_webhook_secret\"<br>\r\n<br>\r\napp.post(\"\/maya\/webhooks\")<br>\r\nasync def handle_maya_webhook(request: Request).<br>\r\n    # \u30d9\u30ea\u30d5\u30a1\u30a4\u7f72\u540d <br>\r\n    signature_header = request.headers.get(\"X-Maya-Signature\")<br>\r\n    <br>\r\n<\/code><\/pre>\n<h2>\u3088\u304f\u3042\u308b\u554f\u984c\u306e\u89e3\u6c7a\u7b56<\/h2>\n<ol>\n<li>\n<p><strong>\u8a3c\u660e\u66f8\u691c\u8a3c\u306e\u5931\u6557<\/strong>::<\/p>\n<pre><code class=\"language-bash\"># PHP cURL SSL\u8a2d\u5b9a\uff08\u958b\u767a\u74b0\u5883\u3067\u306f\u4e00\u6642\u7684\u306b\u8a8d\u8a3c\u3092\u7121\u52b9\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\uff09<br>\r\ncurl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false)\uff1b <br>\r\n<br>\r\n# Python\u304cSSL\u306e\u30bb\u30c3\u30c8\u30a2\u30c3\u30d7\u3092\u8981\u6c42\u3059\u308b  <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>\u30c7\u30d0\u30c3\u30b0\u306e\u30d2\u30f3\u30c8<\/strong>::<\/p>\n<ul>\n<li>GCash\u30b5\u30f3\u30c9\u30dc\u30c3\u30af\u30b9\u306e\u30c6\u30b9\u30c8\u30ab\u30fc\u30c9\u756a\u53f7\uff1a<code>4111111111111111<\/code><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316<\/strong>::<\/p>\n<\/li>\n<li>\n<p><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5f37\u5316\u306e\u63d0\u8a00<\/strong><\/p>\n<\/li>\n<li>\n<p><strong>\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u30fb\u30b9\u30c6\u30fc\u30bf\u30b9\u306e\u540c\u671f<\/strong><\/p>\n<\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<li><\/li>\n<\/ol>\n<p>10<\/p>\n<h2>\u6c7a\u6e08\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u30fb\u30c9\u30c3\u30ad\u30f3\u30b0\u306e\u5fb9\u5e95\u7684\u306a\u5b9f\u88c5\u3068\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\uff08\u7d9a\u304d\uff09<\/h2>\n<h3>5.\u53d6\u5f15\u72b6\u6cc1\u306e\u540c\u671f\u30e1\u30ab\u30cb\u30ba\u30e0<\/h3>\n<h4>\u30a2\u30af\u30c6\u30a3\u30d6\u30af\u30a8\u30ea\u306ePHP\u5b9f\u88c5<\/h4>\n<pre><code class=\"language-php\">function getGcashPaymentStatus(string $paymentId): array {.<br>\r\n    $endpoint = \"\/payments\/v1\/payments\/{$paymentId}\"\uff1b<br>\r\n    $imestamp = time()\uff1b<br>\r\n    <br>\r\n    \/\/ \u30b7\u30b0\u30cd\u30c1\u30e3\u3092\u751f\u6210\u3059\u308b\uff08\u5148\u306b\u5b9a\u7fa9\u3057\u305f\u30b7\u30b0\u30cd\u30c1\u30e3\u30fb\u30e1\u30bd\u30c3\u30c9\u3092\u4f7f\u7528\u3059\u308b\uff09<br>\r\n    $signature = generateGcashSignature('GET', $endpoint, $imestamp)\uff1b<br>\r\n    <br>\r\n    \u3092\u8a66\u3059\u3002<br>\r\n        return makeApiRequest(<br>\r\n            \"{$gcash_base_url}{$endpoint}\",<br>\r\n            \u30cc\u30eb\u3067\u3042\u308b\u3001<br>\r\n            false, \/\/ GET\u30ea\u30af\u30a8\u30b9\u30c8<br>\r\n            [<br>\r\n                \u300cAuthorization: Bearer {$gcash_api_key}\u300d\u3001\u300cAuthorisation: Bearer {$gcash_api_key}\u300d\u3002<br>\r\n                \u300cX-GCash-Timestamp: {$imestamp}\"\u3001<br>\r\n                \u300cX-GCash-Signature: {$signature}\"<br>\r\n            ]<br>\r\n        );<br>\r\n    } catch (\u4f8b\u5916) {.<br>\r\n        throw new Exception(\"Failed to fetch payment status\")\uff1b<br>\r\n    }<br>\r\n}<br>\r\n<\/code><\/pre>\n<h4>Python\u306e\u975e\u540c\u671f\u72b6\u614b\u30c1\u30a7\u30c3\u30af<\/h4>\n<pre><code class=\"language-python\">async def check_maya_payment_status(session, checkout_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.\u30a8\u30e9\u30fc\u51e6\u7406\u3068\u30ea\u30c8\u30e9\u30a4\u6a5f\u69cb<\/h3>\n<p><strong>PHP Exponential Backoff Retry \u306e\u4f8b<\/strong><\/p>\n<pre><code class=\"language-php\">function makePaymentWithRetry(callable $paymentFn, int maxRetries) { retryCount while (true) { try return paymentFn(); catchPaymentException 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\/\/ \u4f7f\u3044\u65b9\u3002<br>\r\nmakePaymentWithRetry(fn createGcashPayment(...));<br>\r\n<\/code><\/pre>\n<p><strong>Python\u30c7\u30b3\u30ec\u30fc\u30bf\u306e\u5b9f\u88c5<\/strong><\/p>\n<pre><code class=\"language-python\">from functools import wraps <br>\r\n<br>\r\ndef retriable(max_retries=3 backoff_factor=1):\uff1a<br>\r\n def \u30c7\u30b3\u30ec\u30fc\u30bf(func) @wraps(func)<br>\r\n async def wrapper(*args kwargs last_error None 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 last_error \u304b\u3089\u306e Retr yExhaustedError return wrapper return \u30c7\u30b3\u30ec\u30fc\u30bf\u30fc<br>\r\n<br>\r\n\u30ea\u30c8\u30e9\u30a4\u53ef\u80fd(\u6700\u5927\u30ea\u30c8\u30e9\u30a4\u6570)<br>\r\nasync def process_paymen().<br>\r\n \u30d1\u30b9 ``<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\u304a\u3088\u3073Maya\u652f\u6255\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u30c9\u30c3\u30ad\u30f3\u30b0\u30ac\u30a4\u30c9 GCash\u652f\u6255\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9 \u30c9\u30c3\u30ad\u30f3\u30b0...<\/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\/ja\/2025\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\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\/ja\/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=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"deekpay\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u5206\" \/>\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\":\"ja\",\"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\":\"ja\",\"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\":\"ja\"},{\"@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\":\"ja\",\"@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\":\"ja\",\"@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\/ja\/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\/ja\/2025\/07\/31\/\u7528php\uff0fpython\u5bf9\u63a5gcash\u6216maya\u652f\u4ed8\u63a5\u53e3\/","og_locale":"ja_JP","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\/ja\/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":{"\u57f7\u7b46\u8005":"deekpay","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"6\u5206"},"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":"ja","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":"ja","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":"ja"},{"@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":"ja","@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":"ja","@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\/ja\/author\/deekpay\/"}]}},"_links":{"self":[{"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/posts\/3418","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/comments?post=3418"}],"version-history":[{"count":1,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/posts\/3418\/revisions"}],"predecessor-version":[{"id":3419,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/posts\/3418\/revisions\/3419"}],"wp:attachment":[{"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/media?parent=3418"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/categories?post=3418"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deekpay.com\/ja\/wp-json\/wp\/v2\/tags?post=3418"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}