Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
contact-form-7
/
modules
/
stripe
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php class WPCF7_Stripe_API { const api_version = '2020-08-27'; const partner_id = 'pp_partner_HHbvqLh1AaO7Am'; const app_name = 'WordPress Contact Form 7'; const app_url = 'https://contactform7.com/stripe-integration/'; private $secret; public function __construct($secret) { $this->secret = $secret; } private function log($url, $request, $response) { wpcf7_log_remote_request($url, $request, $response); } private function default_headers() { $app_info = array('name' => self::app_name, 'partner_id' => self::partner_id, 'url' => self::app_url, 'version' => WPCF7_VERSION); $ua = array('lang' => 'php', 'lang_version' => PHP_VERSION, 'application' => $app_info); $headers = array('Authorization' => sprintf('Bearer %s', $this->secret), 'Stripe-Version' => self::api_version, 'X-Stripe-Client-User-Agent' => json_encode($ua), 'User-Agent' => sprintf('%1$s/%2$s (%3$s)', self::app_name, WPCF7_VERSION, self::app_url)); return $headers; } public function create_payment_intent($args = '') { $args = wp_parse_args($args, array('amount' => 0, 'currency' => '', 'receipt_email' => '')); if (!is_email($args['receipt_email'])) { unset($args['receipt_email']); } $endpoint = 'https://api.stripe.com/v1/payment_intents'; $request = array('headers' => $this->default_headers(), 'body' => $args); $response = wp_remote_post(esc_url_raw($endpoint), $request); if (200 != wp_remote_retrieve_response_code($response)) { if (WP_DEBUG) { $this->log($endpoint, $request, $response); } return false; } $response_body = wp_remote_retrieve_body($response); $response_body = json_decode($response_body, true); return $response_body; } public function retrieve_payment_intent($id) { $endpoint = sprintf('https://api.stripe.com/v1/payment_intents/%s', urlencode($id)); $request = array('headers' => $this->default_headers()); $response = wp_remote_get(esc_url_raw($endpoint), $request); if (200 != wp_remote_retrieve_response_code($response)) { if (WP_DEBUG) { $this->log($endpoint, $request, $response); } return false; } $response_body = wp_remote_retrieve_body($response); $response_body = json_decode($response_body, true); return $response_body; } }