{"id":5179,"date":"2024-08-28T23:28:56","date_gmt":"2024-08-28T14:28:56","guid":{"rendered":"https:\/\/kindnesshumor.com\/?p=5179"},"modified":"2024-08-30T12:22:38","modified_gmt":"2024-08-30T03:22:38","slug":"stripe-webhook-http-%e3%82%b9%e3%83%86%e3%83%bc%e3%82%bf%e3%82%b9%e3%82%b3%e3%83%bc%e3%83%89-%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%a2%e3%82%a6%e3%83%88","status":"publish","type":"post","link":"https:\/\/kindnesshumor.com\/?p=5179","title":{"rendered":"stripe webhook HTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">stripe\u3063\u3066? webhook\u3063\u3066\uff1f<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">web\u6c7a\u6e08\u3092\u4f7f\u3046API\u3068\u3057\u3066\u77e5\u3063\u3066\u3044\u308b\u4eba\u306f\u77e5\u3063\u3066\u3044\u308b\u6709\u540d\u306a\u3082\u306e\u304c<a href=\"https:\/\/stripe.com\/\">stripe<\/a>\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306eAPI\u3067\u6c7a\u6e08\u3092\u884c\u3046\u969b\u306b\u3001webhook\u3068\u3044\u3046\u6a5f\u80fd\u3092\u3064\u304b\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u7c21\u5358\u306b\u3044\u3046\u3068\u3001stripe\u5074\u3067\u767a\u751f\u3057\u305f\u30a4\u30d9\u30f3\u30c8\u3092\u3053\u3061\u3089\u306e\u30b7\u30b9\u30c6\u30e0\u306e\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306b\u4f1d\u9054\u3057\u3066\u304f\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306b\u3088\u308a\u305f\u3068\u3048\u3070\u3001\u6c7a\u6e08\u753b\u9762\u3067\u30e6\u30fc\u30b6\u30fc\u304c\u6c7a\u6e08\u9014\u4e2d\u3067\u753b\u9762\u304c\u304d\u308a\u304b\u308f\u308b\u307e\u3048\u306b\u753b\u9762\u3092\u6d88\u3057\u305f\u3068\u3057\u3066\u3082\u3001\u6c7a\u6e08\u304c\u5b8c\u4e86\u3057\u305f\u3053\u3068\u3092\u3053\u3061\u3089\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u78ba\u8a8d\u3067\u304d\u308b\u3088\u3046\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u6c7a\u6e08\u6a5f\u80fd\u3068\u3044\u3046\u9ad8\u6b21\u5143\u306e\u6a5f\u80fd\u3060\u304b\u3089\u3053\u305d\u3001\u7d30\u304b\u3044\u3067\u3059\u304c\u3053\u3046\u3044\u3046\u3068\u3053\u308d\u306f\u5927\u5207\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4eca\u56de\u306f\u3001\u305d\u306ewebhook\u3067\u3053\u3061\u3089\u5074\u3067\u30a4\u30d9\u30f3\u30c8\u3092\u3046\u3051\u3068\u3063\u3066\u95a2\u6570\u5185\u3067\u51e6\u7406\u3059\u308b\u969b\u306b\u6ce8\u610f\u3059\u3079\u304d\u3053\u3068\u3092\u81ea\u5206\u306e\u5099\u5fd8\u9332\u3082\u304b\u306d\u3066\u66f8\u3044\u3068\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u74b0\u5883<\/h2>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"746\" height=\"102\" src=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image.png\" alt=\"\" class=\"wp-image-5180\" srcset=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image.png 746w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-600x82.png 600w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"370\" height=\"65\" src=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-1.png\" alt=\"\" class=\"wp-image-5181\"\/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"197\" src=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-2-1024x197.png\" alt=\"\" class=\"wp-image-5182\" srcset=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-2-1024x197.png 1024w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-2-600x115.png 600w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-2-768x148.png 768w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-2.png 1217w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"282\" src=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-4-1024x282.png\" alt=\"\" class=\"wp-image-5184\" srcset=\"https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-4-1024x282.png 1024w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-4-600x165.png 600w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-4-768x212.png 768w, https:\/\/kindnesshumor.com\/wp-content\/uploads\/2024\/08\/image-4.png 1302w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">webhook\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308bRoute<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305a\u3001laravel\u3067route\u3092\u8a2d\u5b9a\u3057\u307e\u3059\u3002webhook\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308b\u30e1\u30bd\u30c3\u30c9\u306f\u3001POST\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u307e\u305f\u3001Csrf\u306e\u9069\u5fdc\u3092\u9664\u5916\u3059\u308b\u305f\u3081\u306b\u3001VerifyCsrfToken.php\u306b\u3082\u9664\u5916\u5bfe\u5fdc\u306eURL\u3092\u8a18\u5165\u3057\u3068\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<div style=\"height:101px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">webhook\u901a\u77e5\u3092\u53d7\u3051\u53d6\u308bContoller\u306e\u30e1\u30bd\u30c3\u30c9<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u306f\u3058\u3081\u306b\u3001\u3046\u3051\u3068\u308b\u305f\u3081\u306e\u546a\u6587\u7684\u306a\u66f8\u304d\u65b9\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\u5f8c\u3005\u8aac\u660e\u2193\n    $current_api_key = $this-&gt;getCurrentStripeApiKey();\n    if ($current_api_key == null) {\n      $this-&gt;setApi();\n    }\n\/\/\u5f8c\u3005\u8aac\u660e\u2191\n\n\/\/\u2193\u546a\u6587---------------------------------------------------------\n    \/** @var string $payload *\/\n    $payload = @file_get_contents('php:\/\/input');\n    \/** @var string $sig_header *\/\n    $sig_header = $_SERVER['HTTP_STRIPE_SIGNATURE'];\n    \/** @var string $endpoint_secret *\/\n    $endpoint_secret = config('services.stripe.end_point_secret');\n\n\n\n    try {\n      \/** @var \\Stripe\\Event $event *\/\n      $event = \\Stripe\\Webhook::constructEvent(\n        $payload,\n        $sig_header,\n        $endpoint_secret\n      );\n    } catch (\\UnexpectedValueException $e) {\n      \/\/ Invalid payload\n      return response()-&gt;json(['message' =&gt; 'Stripe Webhook  error catch'], 400);\n    }\n\n\n    \/\/ \u2193\u2605webhook\u306b\u6210\u529f\u3057\u305f\u3042\u3068\u306b\u6d41\u308c\n    http_response_code(200);\n    \n    \n\/\/\u2191\u546a\u6587---------------------------------------------------------\n\n\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/\/\u5f8c\u3005\u8aac\u660e\u2193<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$current_api_key<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">$this<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">getCurrentStripeApiKey<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">$current_api_key<\/span><span style=\"color: #D4D4D4\"> == <\/span><span style=\"color: #569CD6\">null<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #9CDCFE\">$this<\/span><span style=\"color: #D4D4D4\">-&gt;<\/span><span style=\"color: #DCDCAA\">setApi<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/\u5f8c\u3005\u8aac\u660e\u2191<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/\u2193\u546a\u6587---------------------------------------------------------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> <\/span><span style=\"color: #9CDCFE\">string<\/span><span style=\"color: #6A9955\"> $payload *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$payload<\/span><span style=\"color: #D4D4D4\"> = @<\/span><span style=\"color: #DCDCAA\">file_get_contents<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;php:\/\/input&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> <\/span><span style=\"color: #9CDCFE\">string<\/span><span style=\"color: #6A9955\"> $sig_header *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$sig_header<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #9CDCFE\">$_SERVER<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #CE9178\">&#39;HTTP_STRIPE_SIGNATURE&#39;<\/span><span style=\"color: #D4D4D4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> <\/span><span style=\"color: #9CDCFE\">string<\/span><span style=\"color: #6A9955\"> $endpoint_secret *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">$endpoint_secret<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #DCDCAA\">config<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;services.stripe.end_point_secret&#39;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">try<\/span><span style=\"color: #D4D4D4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> \\Stripe\\Event $event *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #9CDCFE\">$event<\/span><span style=\"color: #D4D4D4\"> = \\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #C8C8C8\">Webhook<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">constructEvent<\/span><span style=\"color: #D4D4D4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">$payload<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">$sig_header<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">$endpoint_secret<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    } <\/span><span style=\"color: #C586C0\">catch<\/span><span style=\"color: #D4D4D4\"> (\\<\/span><span style=\"color: #9CDCFE\">UnexpectedValueException<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$e<\/span><span style=\"color: #D4D4D4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #6A9955\">\/\/ Invalid payload<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">response<\/span><span style=\"color: #D4D4D4\">()-&gt;<\/span><span style=\"color: #DCDCAA\">json<\/span><span style=\"color: #D4D4D4\">([<\/span><span style=\"color: #CE9178\">&#39;message&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">=&gt;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&#39;Stripe Webhook  error catch&#39;<\/span><span style=\"color: #D4D4D4\">], <\/span><span style=\"color: #B5CEA8\">400<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #6A9955\">\/\/ \u2193\u2605webhook\u306b\u6210\u529f\u3057\u305f\u3042\u3068\u306b\u6d41\u308c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">http_response_code<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">200<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/\u2191\u546a\u6587---------------------------------------------------------<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u305d\u306e\u4e2d\u3067\u3001\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30d3\u30eb\u30c9\u3059\u308b\u66f8\u304d\u65b9\u304c\u81ea\u5206\u306e\u3057\u3063\u3066\u3044\u308b\u65b9\u6cd5\u30672\u7a2e\u985e\u3042\u308a\u307e\u3059\u304c\u3001<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"  public function setApi(): void\n  {\n    Stripe::setApiKey(config('services.stripe.secret_key')); \/\/\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc\n    return;\n  }\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #9CDCFE\">public<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">setApi<\/span><span style=\"color: #D4D4D4\">(): <\/span><span style=\"color: #4EC9B0\">void<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C8C8C8\">Stripe<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">setApiKey<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">config<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;services.stripe.secret_key&#39;<\/span><span style=\"color: #D4D4D4\">)); <\/span><span style=\"color: #6A9955\">\/\/\u30b7\u30fc\u30af\u30ec\u30c3\u30c8\u30ad\u30fc<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\" public function setApi2(): \\Stripe\\StripeClient\n   {\n     $stripe = new \\Stripe\\StripeClient(config('services.stripe.secret_key'));\n     return $stripe;\n   }\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">public<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">setApi2<\/span><span style=\"color: #D4D4D4\">(): \\<\/span><span style=\"color: #4EC9B0\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #4EC9B0\">StripeClient<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">   {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">     <\/span><span style=\"color: #9CDCFE\">$stripe<\/span><span style=\"color: #D4D4D4\"> = <\/span><span style=\"color: #569CD6\">new<\/span><span style=\"color: #D4D4D4\"> \\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #DCDCAA\">StripeClient<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">config<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&#39;services.stripe.secret_key&#39;<\/span><span style=\"color: #D4D4D4\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">     <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$stripe<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">   }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0a\u306e\u307b\u3046\u306f\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u306bstripeAPI\u95a2\u9023\u306e\u30e1\u30bd\u30c3\u30c9\u30921\u3064\u306a\u304e\u306e\u51e6\u7406\u304c\u5b8c\u4e86\u3059\u308b\u307e\u3067\u4f7f\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4e0b\u306e\u307b\u3046\u306f\u30b9\u30b3\u30fc\u30d7\u304c\u6c7a\u307e\u3063\u3066\u3044\u307e\u3059\u304c\u3001\u5f15\u6570\u3068\u3057\u3066$stripe\u3092\u6e21\u3057\u3066\u3044\u3051\u3070\u4ed6\u306e\u30e1\u30bd\u30c3\u30c9\u5185\u3067\u3082\u4f7f\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">1\u3064\u76ee\u306e\u6ce8\u610f\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">1\u3064\u306a\u304e\u306e\u51e6\u7406\u5185\u3067\u4e0a\u8a18\u306e\u51e6\u7406\u3092\u8907\u6570\u56de\u884c\u3046\u3068\u3001stripe\u5074\u3067\u306f\u3001\u300c<strong>HTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 <\/strong>\u300d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3092\u3060\u3057\u3066\u3057\u307e\u3044\u307e\u3059\u3002\u5168\u7136\u91cd\u3044\u51e6\u7406\u3067\u3082\u3001\u9577\u304f\u6642\u9593\u304c\u304b\u304b\u308b\u51e6\u7406\u3067\u306a\u304f\u3066\u3082\u305d\u3046\u306a\u3063\u3066\u3057\u307e\u3046\u53ef\u80fd\u6027\u304c\u9ad8\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u306a\u306e\u3067\u30011\u3064\u306a\u304e\u306e\u51e6\u7406\u5185\u3067\u8907\u6570\u56de\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30d3\u30eb\u30c9\u3057\u306a\u3044\u3088\u3046\u306b\u3001\u4e0b\u8a18\u306e\u3088\u3046\u306a\u95a2\u6570\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u3092\u63a8\u5968\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"function getCurrentStripeApiKey(): null|string\n  {\n    if (method_exists(\\Stripe\\Stripe::class, 'getApiKey')) {\n      return \\Stripe\\Stripe::getApiKey();\n    }\n    return null;\n  }\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #569CD6\">function<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">getCurrentStripeApiKey<\/span><span style=\"color: #D4D4D4\">(): <\/span><span style=\"color: #4EC9B0\">null<\/span><span style=\"color: #D4D4D4\">|<\/span><span style=\"color: #4EC9B0\">string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #DCDCAA\">method_exists<\/span><span style=\"color: #D4D4D4\">(\\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #9CDCFE\">class<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #CE9178\">&#39;getApiKey&#39;<\/span><span style=\"color: #D4D4D4\">)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> \\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">getApiKey<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">null<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">  }<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u81ea\u5206\u304c\u30b0\u30ed\u30fc\u30d0\u30ebstripe\u306eAPI\u306e\u51e6\u7406\u3092\u4f7f\u3046\u307b\u3046\u306e\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30d3\u30eb\u30c9\u3059\u308b\u30b3\u30fc\u30c9\u3092\u5229\u7528\u3057\u3066\u3044\u308b\u3053\u3068\u524d\u63d0\u3067\u3059\u304c\u3001\u3053\u306e\u95a2\u6570\u306e\u623b\u308a\u5024\u304c\u3001string\u306a\u3089\u3001\u3059\u3067\u306b\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30d3\u30eb\u30c9\u6e08\u307f\u3067\u3001null\u306a\u3089\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3092\u30d3\u30eb\u30c9\u3057\u3066\u306a\u3044\u3053\u3068\u304c\u5224\u65ad\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">2\u3064\u3081\u306e\u6ce8\u610f\u30dd\u30a4\u30f3\u30c8<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u6c7a\u6e08\u5b8c\u4e86\u76f4\u5f8c\u306e\u30a4\u30d9\u30f3\u30c8(payment_intent.succeeded)\u3092webhook\u901a\u77e5\u3067\u53d6\u5f97\u3057\u3066\u3044\u308b\u5834\u5408\u306b\u3067\u3059\u304c\u3001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd4\u91d1\u306e\u51e6\u7406\u3092\u76f4\u5f8c\u306b\u884c\u3046\u3068\u300cHTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 \u300d\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u8fd4\u91d1\u306e\u51e6\u7406\u3068\u306f\u305f\u3068\u3048\u3070\u2193\u306e\u3088\u3046\u306a\u51e6\u7406\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"  \/** @var \\Stripe\\Refund $refund *\/\n      $refund = \\Stripe\\Refund::create([\n        'payment_intent' =&gt; $payment_intent_id,\n        'amount' =&gt; $refund_amount,\n      ]);\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">  <\/span><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> \\Stripe\\Refund $refund *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #9CDCFE\">$refund<\/span><span style=\"color: #D4D4D4\"> = \\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #C8C8C8\">Refund<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">create<\/span><span style=\"color: #D4D4D4\">([<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #CE9178\">&#39;payment_intent&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">=&gt;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$payment_intent_id<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #CE9178\">&#39;amount&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">=&gt;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$refund_amount<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      ]);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306f\u3001\u304a\u305d\u3089\u304f\u3069\u3053\u306b\u3082\u66f8\u3044\u3066\u7121\u304f\u3001\u3053\u306e\u6cd5\u5247\u306b\u6c17\u3065\u304f\u306e\u306b\u591a\u5c11\u6642\u9593\u3092\u8981\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bfe\u5fdc\u7b56\u306f\u7c21\u5358\u3067\u30011\u79d2\u3067\u3082\u6642\u9593\u3092\u3042\u3051\u308b\u3068\u300cHTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 \u300d\u306f\u8d77\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002\u305f\u3068\u3048\u3070\u2193\u306e\u3088\u3046\u306a\u611f\u3058\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#1E1E1E\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"\/\/\u2193\u3053\u3093\u3060\u3051\nsleep(1);\n\/\/\u2191\u3053\u3093\u3060\u3051\n\/** @var \\Stripe\\Refund $refund *\/\n      $refund = \\Stripe\\Refund::create([\n        'payment_intent' =&gt; $payment_intent_id,\n        'amount' =&gt; $refund_amount,\n      ]);\" style=\"color:#D4D4D4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/\/\u2193\u3053\u3093\u3060\u3051<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">sleep<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/\/\u2191\u3053\u3093\u3060\u3051<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/** <\/span><span style=\"color: #569CD6\">@var<\/span><span style=\"color: #6A9955\"> \\Stripe\\Refund $refund *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      <\/span><span style=\"color: #9CDCFE\">$refund<\/span><span style=\"color: #D4D4D4\"> = \\<\/span><span style=\"color: #9CDCFE\">Stripe<\/span><span style=\"color: #D4D4D4\">\\<\/span><span style=\"color: #C8C8C8\">Refund<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">create<\/span><span style=\"color: #D4D4D4\">([<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #CE9178\">&#39;payment_intent&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">=&gt;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$payment_intent_id<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #CE9178\">&#39;amount&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">=&gt;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">$refund_amount<\/span><span style=\"color: #D4D4D4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">      ]);<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u76f2\u70b9\u3067\u3059\u3088\u306d\u3001\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u3060\u304b\u3089\u6642\u9593\u3092\u77ed\u304f\u3059\u308b\u3053\u3068\u3092\u8003\u3048\u3066\u3044\u305f\u306e\u306b\u89e3\u6c7a\u7b56\u306f\u6642\u9593\u3092\u9577\u304f\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3082\u3061\u308d\u3093\u3001\u8a00\u3044\u5fd8\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001\u95a2\u6570\u306e\u521d\u3081\u306e\u307b\u3046\u3067\u3001<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">http_response_code(200);\u306f\u304a\u305d\u3089\u304f\u5fc5\u9808\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u305f\u3060\u3001\u305d\u306e\u5f8c\u7d9a\u306e\u51e6\u7406\u3067sleep(10);\u3068\u304b\u3060\u3051\u3057\u3066\u3082\u30bf\u30a4\u30e0\u30a2\u30a6\u30c8\u306b\u306a\u3089\u306a\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3042\u3068\u306f\u3001\u666e\u901a\u306b\u5f8c\u7d9a\u306e\u51e6\u7406\u3067\u4f55\u304b\u3057\u3089\u306e\u51e1\u30df\u30b9\u3084\u30a8\u30e9\u30fc(\u95a2\u6570\u3092\u5b9a\u7fa9\u3057\u3066\u306a\u3044\u3084\u3001\u578b\u306b\u3042\u308f\u306a\u3044\u3000\u7b49)\u306e\u3068\u304d\u3082\u300cHTTP \u30b9\u30c6\u30fc\u30bf\u30b9\u30b3\u30fc\u30c9 \u30bf\u30a4\u30e0\u30a2\u30a6\u30c8 \u300d\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u4ee5\u4e0a\u3067\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"blob:https:\/\/kindnesshumor.com\/53741da0-2133-469e-b74a-356b083b7d9f\" alt=\"\"\/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>stripe\u3063\u3066? webhook\u3063\u3066\uff1f web\u6c7a\u6e08\u3092\u4f7f\u3046API\u3068\u3057\u3066\u77e5\u3063\u3066\u3044\u308b\u4eba\u306f\u77e5\u3063\u3066\u3044\u308b\u6709\u540d\u306a\u3082\u306e\u304cstripe\u3067\u3059\u3002 \u3053\u306eAPI\u3067\u6c7a\u6e08\u3092\u884c\u3046\u969b\u306b\u3001webhook\u3068\u3044\u3046\u6a5f\u80fd\u3092\u3064\u304b\u3048\u307e\u3059\u3002 \u7c21\u5358\u306b\u3044\u3046\u3068\u3001stripe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5184,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[18],"tags":[],"class_list":["post-5179","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php_laravel"],"views":350,"_links":{"self":[{"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/posts\/5179","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5179"}],"version-history":[{"count":16,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/posts\/5179\/revisions"}],"predecessor-version":[{"id":5533,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/posts\/5179\/revisions\/5533"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=\/wp\/v2\/media\/5184"}],"wp:attachment":[{"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5179"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5179"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kindnesshumor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5179"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}