我在从移动应用程序(使用 salesforce mobile SDK for iOS 开发的混合远程应用程序)进行 Apex REST Web 服务调用时遇到“不允许调用循环”问题,这反过来又调用外部 Web 服务。
这个用例是关于调用 Authorise.net 进行支付处理。
用户->登录->信用卡详细信息->restful apex call-forceTk->http 调用支付(在restful apex 方法中)->用结果更新用户
这是代码
验证:
var forceTKClient;
cordova.require("salesforce/plugin/oauth").authenticate(functionSuccessCallBack, functionErrorCallBack);
function functionSuccessCallBack (creds) {
var apiVersion = "v28.0";
forceTKClient = new forcetk.Client(creds.clientId, creds.loginUrl, null, cordova.require("salesforce/plugin/oauth").forcetkRefresh);
forceTKClient.setSessionToken(creds.accessToken, apiVersion , creds.instanceUrl);
forceTKClient.setRefreshToken(creds.refreshToken);
forceTKClient.setUserAgentString(creds.userAgent);
}
REST 网络服务
/*************************************************************************
* HttpPost method
**************************************************************************/
@HttpPost
global static REST_ProcessOrder_V1.ProcessOrderResponse doPost
(REST_ProcessOrder_V1.ProcessOrderRequest OrderRequest) {
//http callout to payment gateway
//post call code to update database with transaction details
}
来自客户端的 REST 调用
forceTKClient.apexrest('/v1/orders/' ,
function(data, textStatus, jqXHR){
//process = data;
console.log("****Response Success : "+JSON.stringify(data));
scope.$apply(defered.resolve(data));
}
在此先感谢您的帮助!