尝试从Parse.com Cloud Code访问Paypal API时出错

时间:2014-01-02 22:13:59

标签: paypal parse-platform

我正试图从Parse.com Cloud Code中拨打Paypay。

我在Firebug上收到以下错误:       {“code”:141,“error”:“未捕获错误:无法对对象进行编码”}

我直接使用Paypal示例代码中的示例。我的cURL代码段工作正常。当我使用Parse Cloud Code尝试它时,我得到上述错误。这是我的Parse Cloud Code:

Parse.Cloud.httpRequest({
    url: 'https://svcs.sandbox.paypal.com/AdaptiveAccounts/CreateAccount',
    method: 'POST',
    headers: {  "X-PAYPAL-SECURITY-USERID":  "XXXXXXXXX",
                "X-PAYPAL-SECURITY-PASSWORD": "XXXXXXXX",
                "X-PAYPAL-SECURITY-SIGNATURE":  "XXXXXXXXXXXXX",
                "X-PAYPAL-REQUEST-DATA-FORMAT": "JSON",
                "X-PAYPAL-RESPONSE-DATA-FORMAT": "JSON",
                "X-PAYPAL-APPLICATION-ID": "APP-NNNNNNNNNNN",
                "X-PAYPAL-DEVICE-IPADDRESS": "<my_actual_IP_address>",                       
                "X-PAYPAL-SANDBOX-EMAIL-ADDRESS": "XXXXXXXXXXXXXX"                
              },
    body:    {  "sandboxEmailAddress":"xyz@me.com",
                "accountType":"PERSONAL",
                "name": {"firstName":"Lenny","lastName":"Riceman"},
                "address":{"line1":"123 Main St", "city":"Austin", "state":"TX", "postalCode":"78759", "countryCode":"US"},
                "citizenshipCountryCode":"US", 
                "contactPhoneNumber":"512-555-5555",
                "dateOfBirth":"1968-01-01Z", 
                "createAccountWebOptions": {"returnUrl":"http://www.example.com/success.html"},
                "currencyCode":"USD",
                "emailAddress":"lr12345@example.com", 
                "preferredLanguageCode":"en_US",
                "registrationType":"Web",
                "requestEnvelope": {"errorLanguage":"en_US"}
    }, 
  success: function() {
    response.success("Paypal made!");
  },
  error: function(err) {
        response.error(err);
            console.error('Request failed with response code ' );
  }

更新:2014年5月9日 好。我不知道这是否会有所帮助,但这里的确切代码对我有用。

        Parse.Cloud.httpRequest({
      method: 'POST',
      url: 'https://api-3t.paypal.com/nvp -d',
      body: {
        USER: 'sr1.me.com',     
        PWD: 'LEgfdgfsdg8',
        SIGNATURE: 'gfdgh',
        METHOD: 'MassPay',
        VERSION: '93',
        RECEIVERTYPE: 'EmailAddress',
        CURRENCYCODE: 'USD',
        EMAILSUBJECT: 'You have a new payment from ',
        L_EMAIL0: sellerEmail,                      
        L_AMT0: paypalPmt,          
        L_NOTE0: paypalNote,            
        L_UNIQUEID0: bumpSoldTrans
          }

1 个答案:

答案 0 :(得分:1)

Parse.Cloud.define("getUserPayPalToken", function(request, response){

          //Setup private varaibles for paypal request to user
          var receivers = new Array();

          //Setup Receivers for Paypal when payment begins

          //Primary Receiver --- Created first array for primary receiver
          receivers[0]     = new Array();
          receivers[0][0]  = {'amount':'1.00', 'email':'email-test-1@gmail.com'};

          //receivers[0][0]  = {'email':request.params.email};

          //Secondary Receiver --- Created second array for secondary receiver
          receivers[1]     = new Array();
          receivers[1][0]  = {'amount':'2.00', 'email':'test-email@gmail.com'};

         var receiverListParams = [{'receiver': receiverParams}];

         var receiverParams = JSON.stringify(receiverListParams);  


    //Set Parse to call PayPal Adaptive Payments
    Parse.Cloud.httpRequest({  
          method:'POST',
          url: 'https://svcs.sandbox.paypal.com/AdaptivePayments/Pay',
          headers: {
                //Setting PayPal request headers
                'X-PAYPAL-SECURITY-USERID'      : 'xxxxx',
                'X-PAYPAL-SECURITY-PASSWORD'    : 'xxxxx',
                'X-PAYPAL-SECURITY-SIGNATURE'   : 'xxxxx',

                // Global Sandbox Application ID
                'X-PAYPAL-APPLICATION-ID '      : 'APP-80W284485P519543T',

                // Input and output formats
                'X-PAYPAL-REQUEST-DATA-FORMAT'  : 'JSON',
                'X-PAYPAL-RESPONSE-DATA-FORMAT' : 'JSON'

          },
          body:{
                'actionType'      : 'PAY',
                'cancelUrl'       : 'http://www.cancel.com',
                'currencyCode'    : 'USD',
                'returnUrl'       : 'http://www.return.com',
                'requestEnvelope' : {"errorLanguage":"en_US"},
                'receiverList'    : receiverParams
          },
          success: function(httpResponse) {
            console.log(httpResponse.text);
            response.success(httpResponse.text);
          },
          error: function(httpResponse) {
            console.error('Request failed with response code ' + httpResponse.status);
            response.error(httpResponse.text);

          }
        });

});