【发布时间】:2020-10-08 20:29:53
【问题描述】:
我是使用条带支付的新手,所以我决定让它变得简单,并从条带文档中实现了 redirectToCheckout 和条带 webhook,我按照步骤操作,首先我从条带的仪表板创建了一个产品,然后我添加了一些元数据键和价值,最后我在 Angular 上编写了我的代码,一切都很好,直到我意识到我没有得到预期的元数据,实际上它是空的。
我使用 Firebase 云函数作为后端,使用 Angular 框架作为前端,这是我的代码:
角度
stripe.redirectToCheckout({
lineItems: [{ price: itemSku, quantity: 1}],
mode: 'payment',
customerEmail: this.userEmail,
successUrl: 'http://localhost:4200/purchase/success',
cancelUrl: 'http://localhost:4200/purchase/failed'
})
Firebase 云功能
app.post('/webhook', bodyParser.raw({type: 'application/json'}), (request, response) => {
const sig = request.headers['stripe-signature'];
let event;
try {
event = stripe.webhooks.constructEvent(request.rawBody, sig, endpointSecret);
} catch (err) {
response.status(404).end()
}
const intent = event.data.object
switch (event.type) {
case constants.INTENT_SUCCESS:
// it prints the object with empty metadata
console.log('Success object:', intent); <- metadata:{}
break;
case constants.INTENT_FAILED:
console.log('Failed:', intent.id);
break;
}
response.json({received: true});
response.sendStatus(200)
});
【问题讨论】:
-
您在条带控制台中看到了什么?是否调用了 webhook?
-
感谢您的回答。是的,但元数据在付款意图成功对象处是
metadata:{},我需要它以及我已经在产品仪表板中设置的元数据 -
你看到意图对象的其他属性还是完全为空?
-
是的,我可以看到对象的其他属性的值,但看不到这个的值:(
标签: javascript angular firebase google-cloud-functions stripe-payments