作曲家失败 - >作曲家需要sger / laravel-paypal

I want integrate paypal in my Laravel 5.3 proyect. I want use the sger/laravel-paypal package.

When I use the composer require sger/laravle-paypal to install this package, composer report me this errors:

Using version ^0.1.0 for sger/laravel-paypal
./composer.json has been updated
> php artisan clear-compiled
Loading composer repositories with package information
Warning: Accessing php-repo.foticos.com over http which is an insecure protocol.
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for sger/laravel-paypal ^0.1.0 -> satisfiable by sger/laravel-paypal[0.1].
    - sger/laravel-paypal 0.1 requires paypal/rest-api-sdk-php 1.7.* -> satisfiable by paypal/rest-api-sdk-php[1.7.2, 1.7.3, 1.7.4, v1.7.0, v1.7.1].
    - paypal/rest-api-sdk-php 1.7.2 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php 1.7.3 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php 1.7.4 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php v1.7.0 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - paypal/rest-api-sdk-php v1.7.1 requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0].
    - Conclusion: don't install psr/log 1.0.0


Installation failed, reverting ./composer.json to its original content.

This is my composer.json file:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "repositories": [ { "type": "composer", "url": "http://php-repo.foticos.com" } ],
    "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.3.*",
        "foticos/foti_api_client": "*@dev",        
        "foticos/laravel_foti_api": "*@dev",
        "foticos/laravel_foti_webutils": "*@dev",
        "barryvdh/laravel-debugbar" : "2.*",
        "predis/predis" : "~1.1@dev",
        "stripe/stripe-php": "^3.14",
        "guzzlehttp/guzzle": "~4.0"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~4.0",
        "phpspec/phpspec": "~2.1",
        "symfony/dom-crawler": "~3.0",
        "symfony/css-selector": "~3.0"
    },
    "autoload": {
        "classmap": [
            "database"
        ],
        "psr-4": {
            "App\\": "app/"
        }
    },
    "autoload-dev": {
        "classmap": [
            "tests/TestCase.php"
        ]
    },
    "scripts": {
        "post-install-cmd": [
            "php artisan clear-compiled",
            "php artisan optimize"
        ],
        "pre-update-cmd": [
            "php artisan clear-compiled"
        ],
        "post-update-cmd": [
            "php artisan optimize"
        ],
        "post-root-package-install": [
            "php -r \"copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "php artisan key:generate"
        ]
    },
    "config": {
        "preferred-install": "dist", 
        "secure-http"      : false
    }
}

This is how I managed to install it:

$ composer require psr/log 1.0.0

$ composer require paypal/rest-api-sdk-php 1.7.*

$ composer require sger/laravel-paypal 0.1.0

Note:

  • paypal/rest-api-sdk-php 1.7.* requires psr/log 1.0.0 -> satisfiable by psr/log[1.0.0]
  • sger/laravel-paypal 0.1 requires paypal/rest-api-sdk-php 1.7.*

As the error states, the package you are trying to install requires version 1.0.0 of psr/log, if you check your composer.lock file all other requeriments of the package you already had required ^1.0 or ~1.0 version of it, at the time of writing this this would resolve to 1.1.0. Considering the package you are trying to require needs exactly 1.0.0 now your whole set of requirement rules would resolve to 1.0.0 You can just delete your composer.lock file first and vendor folder, then add "sger/laravel-paypal": "^0.1.0", to the requirements on your composer.json file and then execute again composer install.