2017-02-23 11 views
13

ユーザー承認後に承認された支払いを実行()すると失敗します。Paypal Payments REST API - REQUIRED_SCOPE_MISSING

スコープ : "OpenIDのプロフィールのメールアドレス電話https://uri.paypal.com/services/expresscheckout"

consent_uri : "https://www.sandbox.paypal.com/webapps/auth/protocol/openidconnect/v1/authorize?client_id=my_client_id&response_type=code&scope=openid%20profile%20email%20address%20phone%20https://uri.paypal.com/services/expresscheckout&redirect_uri=https://www.my_site.com/src/paypal.php"

[http_code] => 403 
[url] => https://api.sandbox.paypal.com/v1/payments/payment/PAY-55313193UK1537019LCXIDBA/execute 
[header] => Array 
    (
     [0] => Content-Type:application/json 
     [1] => Authorization:Bearer user_access_token_from_identity_api 
     [2] => PayPal-Partner-Attribution-Id:pp_attr_id 
    ) 

[post_data] => {"payer_id":"3BTU9WTCHAU2Q"} 
[response] => {"name":"REQUIRED_SCOPE_MISSING","message":"Access token is missing required scope.","information_link":"https://developer.paypal.com/webapps/developer/docs/api/#REQUIRED_SCOPE_MISSING","debug_id":"e40c3f6b601a"} 

私が唯一のサンドボックスのclient_idを使用していますが、私が持っています支払いを受け入れ、シームレスなチェックアウト権限を有効にする。

https://developer.paypal.com/docs/integration/direct/identity/seamless-checkout/

任意の洞察力が大幅に高く評価されています。

答えて

0

TLDR;私はチェックアウトとは別にユーザーログインを許可し、そのIdentity APIトークンを使用してチェックアウト要求に署名していました。実際には、アイデンティティトークンは、ユーザーを自分のウェブサイトにログインさせるのに役立ちます。その時点で、安静なAPIのための新しいベアラートークンを要求して使用する必要があります。


回答:Githubの上PP-ランディから:

あなたは残りの支払いのために必要なaccess_tokenはこのAPI呼び出しを使用する必要があります。

私があなたから見る唯一のトークンは、REST Paymentsに対して正しくないIdentifyエンドポイント/ v1/identity/openidconnect/tokenserviceです。


ランディが正しかった - 私は、Identity APIを使用してユーザーにログインしたときに返されたトークンを使用してAPIリクエストに署名していました。

実際には、Identity APIによって返されるユーザーのアクセストークンには、ログインに使用されるunique_idを取得する "/ v1/identity/openidconnect/userinfo /"へのリクエストに署名する目的が1つしかありません。

私は、このエンドポイントから提供されたトークンを使用している必要があるときにアイデンティティAPIによって返されたものと同じトークンで支払いのAPIへのリクエストに署名した

「/ V1 /アイデンティティ/ openidconnect/tokenserviceを」

ペイパルREPONSEタイムズ: GithubのペイパルSDKに私のチケットは4で答えた - マーチャントサービスキュー内の私のチケットは全体のトラブルシューティングがここで見つけることができ、約4日間

に答えた 5日: https://github.com/paypal/PayPal-PHP-SDK/issues/785#issuecomment-282749095

私はSDKを使用していないにもかかわらず、PayPal SDKのランディーは私の質問に答えようと、それ以上になりました。ランディさんありがとう!

2

あなたのアプリの設定で、 "APP CAPABILITIES" - > "advanced options"(developer.paypal.com)にチェックが入っていますか?

+0

私は、私の答えに何が間違っているかを示します。コメントありがとうございました。 –

関連する問題