
var config = {
individualCustomerurl: "https://<host_name>/sap/c4c/odata/v1/c4codata/IndividualCustomerCollection/",
credential: "<your user name>:<your password>",
accessToken: "access token of your test subscription account"
};
module.exports = config;
var request = require('request');
var createAccount = require("../service/createAccountInC4C.js");
var getXMLNodeValue = require("../tool/xmlparse.js");
var formattedValue = require("../tool/formatValue.js");
var replyMessage = require("../tool/replyMessage.js");
module.exports = function (app) {
app.route('/').post(function(req,res){
var _da;
req.on("data",function(data){
_da = data.toString("utf-8");
});
req.on("end",function(){
console.log("new http post: " + _da);
var msgType = formattedValue(getXMLNodeValue('MsgType',_da));
if( msgType === "event"){
var event = formattedValue(getXMLNodeValue('Event',_da));
if( event === "subscribe"){
var replyxml = replyMessage(_da, "Welcome to Jerry's subscription account");
var fromUserName = formattedValue(getXMLNodeValue('FromUserName',_da));
createAccount(fromUserName);
res.send(replyxml);
}
}
});
});
};
var config = require("../../config.js");
var request = require('request');
var postWCMessage = require("./postMessageToUser.js");
var getTokenOptions = {
url: config.individualCustomerurl,
method: "GET",
json:true,
headers: {
"content-type": "application/json",
'Authorization': 'Basic ' + new Buffer(config.credential).toString('base64'),
"x-csrf-token" :"fetch"
}
};
function getToken() {
return new Promise(function(resolve,reject){
var requestC = request.defaults({jar: true});
requestC(getTokenOptions,function(error,response,body){
var csrfToken = response.headers['x-csrf-token'];
if(!csrfToken){
reject({message:"token fetch error"});
return;
}
resolve(csrfToken);
}); // end of requestC
});
}
function _createIndividualCustomer(token, fromUserName){
return new Promise(function(resolve, reject){
var oPostData = {
"FirstName":"Wechat",
"LastName":fromUserName,
"RoleCode": "ZCRM01",
"CountryCode": "US",
"StatusCode": "2"
};
var requestC = request.defaults({jar: true});
var createOptions = {
url: config.individualCustomerurl,
method: "POST",
json:true,
headers: {
"content-type": "application/json",
'x-csrf-token': token
},
body:oPostData
};
requestC(createOptions,function(error,response,data){
if(error){
reject(error.message);
}else {
resolve(data);
}
});// end of requestC
});
}
module.exports = function createAccount(fromUserName){
getToken().then(function(token) {
console.log("token received: " + token);
_createIndividualCustomer(token, fromUserName).then(function(data){
var message = "account created: " + data.d.results.CustomerID;
console.log(message);
postWCMessage(fromUserName, message);
});
});
};
var config = require("../../config.js");
var request = require("request");
function printObject(oData){
for( var a in oData){
console.log("key: " + a);
console.log("value: " + oData[a]);
if( typeof oData[a] === "object"){
printObject(oData[a]);
}
}
}
function sendWCMeaasge(toUser,sMessage){
console.log("begin to send message to user: " + toUser + " with message: " + sMessage);
var options = {
url:"https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" +
config.accessToken,
method: "POST",
json:true,
headers: {
"content-type": "application/json"},
body:{
"touser":toUser,
"msgtype":"text",
"text":
{
"content":sMessage
}
}
};
request(options,function(error,response,data){
console.log("Status message: " + response.statusMessage);
console.log("Data: " + data.errmsg);
});
}
module.exports = sendWCMeaasge;
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
5 | |
2 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |