System.CalloutException:不允许调用循环:适用于iOS的Salesforce移动SDK

时间:2014-05-14 03:37:45

标签: apex-code salesforce-ios-sdk

我正在通过移动应用程序(使用适用于iOS的salesforce mobile SDK开发的混合远程应用程序)进行Apex REST网络服务调用时遇到“不允许调用循环”问题,而这反过来会调用外部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));
    }

提前感谢您的帮助!

0 个答案:

没有答案