Showing results for 
Search instead for 
Did you mean: 

Setting up transaction from server doesn't work.

New Community Member

Setting up transaction from server doesn't work.

This is the code taken from here: Server integration, set up transaction.





namespace Sample\CaptureIntentExamples;

require __DIR__ . '/vendor/autoload.php';
//1. Import the PayPal SDK client that was created in `Set up Server-Side SDK`.
use Sample\PayPalClient;
use PayPalCheckoutSdk\Orders\OrdersCreateRequest;

class CreateOrder

// 2. Set up your server to receive a call from the client
   *This is the sample function to create an order. It uses the
   *JSON body returned by buildRequestBody() to create a new order.
  public static function createOrder($debug=false)
    $request = new OrdersCreateRequest();
    $request->body = self::buildRequestBody();
   // 3. Call PayPal to set up a transaction
    $client = PayPalClient::client();
    $response = $client->execute($request);
    if ($debug)
      print "Status Code: {$response->statusCode}\n";
      print "Status: {$response->result->status}\n";
      print "Order ID: {$response->result->id}\n";
      print "Intent: {$response->result->intent}\n";
      print "Links:\n";
      foreach($response->result->links as $link)
        print "\t{$link->rel}: {$link->href}\tCall Type: {$link->method}\n";

      // To print the whole response body, uncomment the following line
      // echo json_encode($response->result, JSON_PRETTY_PRINT);

    // 4. Return a successful response to the client.
    return $response;

     * Setting up the JSON request body for creating the order with minimum request body. The intent in the
     * request body should be "AUTHORIZE" for authorize intent flow.
    private static function buildRequestBody()
        return array(
            'intent' => 'CAPTURE',
            'application_context' =>
                    'return_url' => '',
                    'cancel_url' => ''
            'purchase_units' =>
                    0 =>
                            'amount' =>
                                    'currency_code' => 'USD',
                                    'value' => '220.00'

 *This is the driver function that invokes the createOrder function to create
 *a sample order.
if (!count(debug_backtrace()))




The button NEVER renders. The console is full of errors:




SyntaxError: Unexpected end of JSON input
Uncaught SyntaxError: Unexpected end of JSON input




What am I missing? There is no explanation on the docs page.


Also I need to ask:

Is "Smart Checkout" the best option for the following case?

All I need is to be able to have a button with a fixed price (that the user cannot change), and be reported (a simple POST to my back) if anyone makes a payment so I can change the user account to "premium" level.


Thanks in advance.