2017-02-23 21 views
13

Không thực hiện() Thực hiện thanh toán được ủy quyền sau khi người dùng chấp thuận.Thanh toán qua PayPal REST API - REQUIRED_SCOPE_MISSING

phạm vi : "openid hồ sơ địa chỉ email điện thoại 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"} 

)

Tôi chỉ đang sử dụng một sandbox client_id và tôi có Chấp nhận thanh toán và sử dụng quyền Thanh toán liền mạch được bật.

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

Bất kỳ cái nhìn sâu sắc được đánh giá rất nhiều.

Trả lời

0

TLDR; Tôi đã cho phép đăng nhập người dùng tách biệt khỏi thanh toán và đã ký các yêu cầu thanh toán bằng cách sử dụng mã thông báo API Identity đó. Trong thực tế, mã thông báo nhận dạng chỉ hữu ích khi đăng nhập người dùng vào trang web của tôi, tại thời điểm đó, mã thông báo Vòng đệm mới cho API của Restful nên được yêu cầu và sử dụng.


Trả lời: Từ pp-randy trên Github:

Các access_token bạn cần thanh toán phần còn lại của bạn nên sử dụng cuộc gọi API này.

Mã thông báo duy nhất tôi nhìn thấy từ bạn là từ Xác định điểm cuối/v1/danh tính/openidconnect/tokenservice không đúng cho Thanh toán REST.


Randy đã đúng - Tôi đã ký yêu cầu API bằng mã thông báo được trả lại khi tôi đăng nhập người dùng bằng API nhận diện.

Trong thực tế, mã thông báo truy cập của người dùng được API nhận dạng trả lại chỉ có một mục đích, để ký yêu cầu tới "/ v1/identity/openidconnect/userinfo /" để nhận được unique_id được sử dụng để đăng nhập.

tôi đã ký hợp đồng yêu cầu API thanh toán với cùng một thẻ trả về bởi các API nhận dạng khi tôi cần phải có được bằng cách sử dụng thẻ được cung cấp từ thiết bị đầu cuối này:

"/ v1/sắc/openidconnect/tokenservice"

Paypal phản ứng Times: vé của tôi trên Github Paypal SDK đã được trả lời trong 4-5 ngày vé của tôi trong Dịch vụ Queue Merchant được trả lời trong khoảng 4 ngày

Toàn bộ xử lý sự cố có thể được tìm thấy ở đây: https://github.com/paypal/PayPal-PHP-SDK/issues/785#issuecomment-282749095

Randy từ SDK Paypal đã vượt lên trên và vượt ra ngoài để trả lời câu hỏi của tôi, mặc dù tôi không sử dụng SDK. Cảm ơn bạn Randy!

2

Bạn có đánh dấu "Đăng ký" trong Cấu hình ứng dụng của mình trong "ỨNG DỤNG ỨNG DỤNG" - >> "Tùy chọn nâng cao" trên developer.paypal.com không?

+0

Tôi làm như vậy, tôi sẽ hiển thị sai trong câu trả lời của tôi. Cảm ơn bạn đã bình luận. –

Các vấn đề liên quan