Javascript 如何阅读stripe webhook响应
我创建了coldfusion文件来捕获STRIPE webhook响应Javascript 如何阅读stripe webhook响应,javascript,jquery,json,coldfusion,stripe-payments,Javascript,Jquery,Json,Coldfusion,Stripe Payments,我创建了coldfusion文件来捕获STRIPE webhook响应 <cfsavecontent variable="headerdump"> <cfdump var="#toString(getHttpRequestData().content, 'utf-8')#" expand="yes" format="text"> </cfsavecontent> <pre>{ "id": "evt_1041EO45YXiN2y2zPh
<cfsavecontent variable="headerdump">
<cfdump var="#toString(getHttpRequestData().content, 'utf-8')#" expand="yes" format="text">
</cfsavecontent>
<pre>{
"id": "evt_1041EO45YXiN2y2zPhZbNrgh",
"created": 1399872268,
"livemode": false,
"type": "invoice.payment_succeeded",
"data": {
"object": {
"date": 1399872268,
"id": "in_1041EO45YXiN2y2zQF1xhLyl",
"period_start": 1399872268,
"period_end": 1399872268,
"lines": {
"object": "list",
"total_count": 1,
"has_more": false,
"url": "/v1/invoices/in_1041EO45YXiN2y2zQF1xhLyl/lines",
"data": [
{
"id": "sub_41EOmzNFelCyAL",
"object": "line_item",
"type": "subscription",
"livemode": false,
"amount": 0,
"currency": "usd",
"proration": false,
"period": {
"start": 1399872268,
"end": 1399958668
},
"quantity": 1,
"plan": {
"interval": "month",
"name": "test one day",
"created": 1399536505,
"amount": 500,
"currency": "usd",
"id": "test_001",
"object": "plan",
"livemode": false,
"interval_count": 1,
"trial_period_days": 1,
"metadata": {
},
"statement_description": "half day trial"
},
"description": null,
"metadata": null
}
]
},
"subtotal": 0,
"total": 0,
"customer": "cus_41EOvhzjYGx7ci",
"object": "invoice",
"attempted": true,
"closed": true,
"paid": true,
"livemode": false,
"attempt_count": 0,
"amount_due": 0,
"currency": "usd",
"starting_balance": 0,
"ending_balance": null,
"next_payment_attempt": null,
"charge": null,
"discount": null,
"application_fee": null,
"subscription": "sub_41EOmzNFelCyAL",
"metadata": {
},
"description": null
}
},
"object": "event",
"pending_webhooks": 1,
"request": "iar_41EO1vDF1gpnPn"
}</pre>
当我打印headerdump时,得到了下面的响应。我想提取输出文本的节点值
{
“id”:“evt_1041EO45YXiN2y2zPhZbNrgh”,
“已创建”:1399872268,
“livemode”:错误,
“类型”:“发票.付款成功”,
“数据”:{
“对象”:{
“日期”:1399872268,
“id”:“in_1041EO45YXiN2y2zQF1xhLyl”,
“周期开始”:1399872268,
“期间结束”:1399872268,
“行”:{
“对象”:“列表”,
“总计数”:1,
“has_more”:错,
“url”:“/v1/invoices/in_1041EO45YXiN2y2zQF1xhLyl/行”,
“数据”:[
{
“id”:“sub)Eomznfelcyal”,
“对象”:“行项目”,
“类型”:“订阅”,
“livemode”:错误,
“金额”:0,
“货币”:“美元”,
“按比例分配”:错误,
“期间”:{
“开始”:1399872268,
“结束”:1399958668
},
“数量”:1,
“计划”:{
“间隔”:“月”,
“名称”:“测试一天”,
“已创建”:1399536505,
“金额”:500,
“货币”:“美元”,
“id”:“测试001”,
“对象”:“计划”,
“livemode”:错误,
“间隔计数”:1,
“试用期”为:1,
“元数据”:{
},
“声明描述”:“半天试用”
},
“描述”:空,
“元数据”:空
}
]
},
“小计”:0,
“总计”:0,
“客户”:“客户”,
“对象”:“发票”,
“尝试”:正确,
“封闭”:正确,
“付费”:正确,
“livemode”:错误,
“尝试计数”:0,
“到期金额”:0,
“货币”:“美元”,
“起始余额”:0,
“期末余额”:空,
“下一次付款尝试”:空,
“费用”:无效,
“折扣”:空,
“申请费”:空,
“订阅”:“sub)Eomznfelcyal”,
“元数据”:{
},
“说明”:空
}
},
“对象”:“事件”,
“挂起的webhooks”:1,
“请求”:“iar_41EO1vDF1gpnPn”
}
请建议如何在coldfusion或javascript中阅读此内容
谢谢我会这样做:
variables.requestdata=getHTTPRequestData();
variables.sStripeData=toString(variables.requestdata.content);
variables.stStripeData=反序列化JSON(variables.sStripeData);
@Peter:我尝试了,但出现了错误“字符1处的JSON解析失败:'向我们显示您用于尝试从字符串中提取JSON的代码。不要使用
生成内容。它很可能会将不需要的内容添加到变量中。只需使用#toString(getHttpRequestData().content,'utf-8')#
在
标签中,查看是否效果更好。除了Miguel强调的cfdump问题(此处不需要cfdump或cfsavecontent),这个问题与链接的问题基本相同(如果有任何显著差异,请使用适当的详细信息编辑问题,然后可以重新打开)。
<cfscript>
variables.requestdata = getHTTPRequestData();
variables.sStripeData = toString(variables.requestdata.content);
variables.stStripeData = deserializeJSON(variables.sStripeData);
</cfscript>