我使用Stripe webhook存储客户在Stripe中收费时收取的美元金额。
我的webhook工作正常,可以通过电子邮件发送费用金额,但似乎无法将其存储在WordPress user\\u meta字段中。
下面是我的代码:
// Retrieve the request\'s body and parse it as JSON
$input = @file_get_contents("php://input");
$event_json = json_decode($input);
// Check against Stripe to confirm that the ID is valid
$event = \\Stripe\\Event::retrieve($event_json->id);
// If charge is successful, store in user meta
if (isset($event) && $event->type == "charge.succeeded") {
$amount = $event->data->object->amount / 100;
}
$payment_user_id = 9192321;
update_user_meta($payment_user_id, \'payment_history\', $amount);
这是因为从stripe接收到的json的格式需要转换为某种格式,然后才能存储它吗?如果我尝试使用intval($amount)将其转换为整数,它只会将其存储为0。
提前感谢!
最合适的回答,由SO网友:cowgill 整理而成
听起来像$amount
变量为空,因此不保存。回传出来看看发生了什么。
确保$payment_user_id
是实际的WordPressuser_id
.
包装您的update_user_meta
在if语句中。
// If charge is successful, store in user meta
if (isset($event) && $event->type == "charge.succeeded") {
$amount = $event->data->object->amount / 100;
echo $amount . \' <- $amount\';
$payment_user_id = 9192321;
update_user_meta($payment_user_id, \'payment_history\', $amount);
}