All I want is to capture the siteMember { contact.Email[0]} and plan name { paidplan.title } in case of “Plan Assigned” and “Plan Cancelled”
My webhook url:
https://lioonnize.wixsite.com/cfa-jun/_functions-dev/orderedPlan
https://lioonnize.wixsite.com/cfa-jun/_functions-dev/cancelPlan
export function post_orderedPlan ( request ) {
let options = {
“headers” : {
“Content-Type” : “application/json”
}
};
// get the request body
return request . body . text ()
. then (( body ) => {
/* let planInfo =
{
“title”: “ZERO value plan cancelled”,
“data”: JSON.parse(body),
“planName”: JSON.parse(body.data.paidplan.title)
}*/
console . log ( JSON . parse ( body ));
return wixData . insert ( “pricePlan” , JSON . parse ( body ));
})
. then (( results ) => {
options . body = {
“inserted” : results
};
return created ( options );
})
// something went wrong
. catch (( error ) => {
options . body = {
“error” : error
};
return serverError ( options );
});
}
Collection defined:
Site Monitor: Throwing error:
folks,
any pointers…how to capture …
siteMember { contact.Email[0]} and plan name { paidplan.title }
Hurray!! Finally I cracked it…capturing JSON [Object,Object]
will share my piece of code…so it can help others…
For easy debugging I tested for onPlanOrdered.
Same piece of code will work for onplanCancelled.
JSON Object we get from onPlanOrdered
{
“data”: {
“paidplan.priceamount”: “0”,
“paidplan.validuntil”: “Until canceled”,
“contact.Address[0].Country”: “IN”,
“paidplan.paymentmethod”: “Online”,
“paidplan.orderid”: “4bc6031a-0240-4800-abd7-72bc658eb16a”,
“paidplan.description”: “Free monthly”,
“site.name”: “CFA 09Jun’21”,
“site.email”: “contact@carefromanywhere.com”,
“contact.Email[0]”: “disha22.shah@gmail.com”,
“paidplan.id”: “2957cda7-3aa2-41bc-93e7-b46138c9caf9”,
“paidplan.title”: “Client Membership”,
“paidplan.validfor”: “0 months”,
“paidplan.startdate”: “6/21/21”,
“start.date”: “6/21/21”,
“paidplan.price”: “$0.00”,
“contact.Id”: “926cf47f-916e-4502-8b17-ae62993cc430”,
“paidplan.subscriptionid”: “71d2a4fa-1483-4f13-a791-1513bd29f9e8”,
“metaSiteId”: “38e38696-3b7e-4cf8-86d8-74882a00a857”
}
}
export function post_orderedPlan(request) {
let sitemMember;
let planName;
let options = {
"headers": {
"Content-Type": "application/json"
}
};
// get the request body
return request.body.text()
.then((body) => {
const pricePlanObject = JSON.parse(body);
let dataValue = pricePlanObject.data;
for (const [name, value] of Object.entries(dataValue)) {
if (name === "contact.Email[0]") {
console.log(name);
console.log(value);
sitemMember = value;
}
if (name === "paidplan.title") {
console.log(name);
console.log(value);
planName = value;
}
}
let planInfo = {
"title": "ZERO value plan purchased",
"planData": pricePlanObject,
"planName": planName,
"memberEmail": sitemMember
}
//return wixData.insert("pricePlan", JSON.parse(body)); //commented on 21 june
return wixData.insert("pricePlan", planInfo);
})
.then((results) => {
options.body = {
"inserted": results
};
return created(options);
})
// something went wrong
.catch((error) => {
options.body = {
"error": error
};
return serverError(options);
});
}