正如標題所說,我正試圖使用webhooks來自動處理一些Stripe事件,這些事件在客戶通過訂閱程序時發生。
在我的webhooks.php檔案中,這些是我不理解的代碼位:
/* 這是我的評論。
/* 這些是我的評論 */
。//這些是Stripe檔案中的注釋
/* 第一個代碼片段 - 不確定這是干什么的?*/
$payload = @file_get_contents('php://input'/span>)。
/* 第二段代碼--不確定這是干什么的?
$event變數指的是什么,為什么$payload被
傳遞給它?*/
$event = null;
try {
$event = StripeEvent::constructFrom(
json_decode($payload, true)
);
} catch (UnexpectedValueException $e) {
//無效的有效載荷。
echo '?? Webhook error while parsing basic request.' ;
http_response_code(400)。
exit()。
}
/* 第三個代碼片段 - 我理解switch和case關鍵字基本上是if和else陳述句。
基本上是if和else陳述句,所以如果$event變數的型別是
等于'customer.subscription.trial_will_end',則運行'$subscription =
$event -> data -> object'。然而,在這種情況下,$subscription變數被分配給什么呢?
($event -> data -> object是什么意思?) */
//處理該事件。
switch ($event->type) {
case 'customer.subscription.trial_will_end':
$subscription = $event->data->object; //包含一個StripeSubscription。
///然后定義并呼叫一個方法來處理試驗的結束。
// handleTrialWillEnd($subscription);
break。
case 'customer.subscription.created':
$subscription = $event->data->object; //包含一個StripeSubscription。
///然后定義并呼叫一個方法來處理正在創建的訂閱。。
// handleSubscriptionCreated($subscription);
break。
case 'customer.subscription.delete':
$subscription = $event->data->object; //包含一個StripeSubscription。
///然后定義并呼叫一個方法來處理被洗掉的訂閱。
// handleSubscriptionDeleted($subscription);
break。
case 'customer.subscription.uped':
$subscription = $event->data->object; //包含一個StripeSubscription。
///然后定義并呼叫一個方法來處理被更新的訂閱。
// handleSubscriptionUpdated($subscription);
break。
default:
//Unexpected event type; default.
echo 'Received unknown event type'。
}
/* 第四段代碼 - 為什么我們需要設定這個?*/
http_response_code(200)。
uj5u.com熱心網友回復:
/* 第一個代碼片段 - 不確定這是干什么的?*/
$payload = @file_get_contents('php://input') 。
它讀取這個腳本正在接收的HTTP POST請求的請求體(webhook處理程式正在接收Stripe向你的服務器發送的HTTP請求)。這是一個標準的PHP習語。
/* 第二個代碼片段 - 不確定這是干什么的?
$event變數指的是什么,為什么$payload被
傳遞給它?*/
$event是有意義的Event(https://stripe.com/docs/api/events/object)物件,是webhook請求的主體。Stripe的PHP庫有一個函式constructEvent來接收傳入的請求體,并將其決議/轉換為您可以使用的物件,這就是該代碼的作用。
然而,在這個$subscription變數被分配給什么?
在這個case中被分配給什么($event -> data -> object意味著什么)?*/
該事件包含一個 "payload "物件,它是該事件所涉及的實際API物件。例如,如果創建了一個訂閱,您會得到一個customer.subscription.created事件,該有效載荷就是訂閱物件。這在Stripe的檔案中都有涉及。https://stripe.com/docs/api/events/object#event_object-data-object /// https://stripe.com/docs/api/events/types#event_types-customer.subscription.created
/* 第四段代碼 - 我們為什么需要設定這個?*/
因為在收到來自Stripe的這個傳入請求后,你必須回復,讓他們知道你收到了。https://stripe.com/docs/webhooks/build#acknowledge-events-immediately
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/333694.html
標籤:
