Я использую следующий код для веб-крючка в полоску, чтобы отправлять электронные письма пользователям из phpmailer. Это из этот смысл.
Кажется, я не могу понять, почему я получаю эту ошибку, я редко использую php, поэтому я уверен, что это то, с чем я не знаком, это ошибка, которую я получаю.
Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное событие $ (T_VARIABLE), ожидание ‘(‘ в /usr/share/nginx/html/emailReceipt.php в строке 24
Код
<?php
// SETUP:
// 1. Customize all the settings (stripe api key, email settings, email text)
// 2. Put this code somewhere where it's accessible by a URL on your server.
// 3. Add the URL of that location to the settings at https://manage.stripe.com/#account/webhooks
// 4. Have fun!
// set your secret key: remember to change this to your live secret key in production
// see your keys here https://manage.stripe.com/account
//Stripe::setApiKey("YOUR STRIPE SECREY KEY");
Stripe::setApiKey("sk_test_WggOmz2smwT9nGdx7aos2R5Q");// retrieve the request's body and parse it as JSON
$body = @file_get_contents('php://input');
$event_json = json_decode($body);
// for extra security, retrieve from the Stripe API
$event_id = $event_json->id;
$event = Stripe_Event::retrieve($event_id);
// This will send receipts on succesful invoices
if $event->type == 'invoice.payment_succeeded' {
email_invoice_receipt(event->data->object);
}
function email_invoice_receipt($invoice) {
$customer = Stripe_Customer::retrieve($invoice->customer);
//Make sure to customize your from address
$subject = 'Your payment has been received';
$headers = 'From: "MyApp Support" <[email protected]>';
mail($customer->email, $subject, message_body(), $headers);
}
function format_stripe_amount($amount) {
return sprintf('$%0.2f', $amount / 100.0);
}
function format_stripe_timestamp($timestamp) {
return strftime("%m/%d/%Y", $timestamp);
}
function payment_received_body($invoice, $customer) {
$subscription = $invoice->lines->subscriptions[0];
return <<'EOF'
Dear {$customer->email}:
This is a receipt for your subscription. This is only a receipt,
no payment is due. Thanks for your continued support!
-------------------------------------------------
SUBSCRIPTION RECEIPT
Email: {$customer->email}
Plan: {$subscription->plan->name}
Amount: {format_stripe_amount($invoice->total)} (USD)
For service between {format_stripe_timestamp($subscription->period->start)} and {format_stripe_timestamp($subscription->period->end)}
-------------------------------------------------
EOF;
}
?>
Вам не хватает скобок в вашем if
заявление:
if $event->type == 'invoice.payment_succeeded'
должно быть:
if ($event->type == 'invoice.payment_succeeded')
Других решений пока нет …