PayPal (invalid scope) for accessing "services/shipping/trackers" - paypal

Dunno how to proceed. From glance I provided all access under My apps & credentials. But somehow not able to get these scopes that should provide me this Access your PayPal transactional data.
https://uri.paypal.com/services/shipping/trackers/read
https://uri.paypal.com/services/shipping/trackers/readwrite
Getting this when adding shipping/trackers:
Full scope list:
export PAYPAL_URL="https://www.sandbox.paypal.com"
export PAYPAL_SCOPE="openid email profile https://uri.paypal.com/services/disputes/read-seller https://uri.paypal.com/services/disputes/update-seller
https://uri.paypal.com/services/reporting/search/read https://uri.paypal.com/services/shipping/trackers/read https://uri.paypal.com/services/shipping/trackers/readwrite"
My apps & Credential:

After opening a support ticket with PayPal issue got resolved! It was handled very professionally!

Related

Paypal REST API Error "REQUIRED SCOPE MISSING"

I am using the Paypal REST API and have unchecked "Disputes" and checked "Payouts" within the appropriate Sandbox application in my developer console.
However the (allowed) scope returned with the access token is always:
https://api.paypal.com/v1/payments/.*
https://uri.paypal.com/services/disputes/update-seller openid
https://uri.paypal.com/services/disputes/read-seller
https://uri.paypal.com/services/applications/webhooks
regardless of my settings in the developer console, hence I am not able to use (test) "Payouts"
(Naturally it gives the response REQUIRED_SCOPE_MISSING, Access token does not have required scope.)
(I have not checked for my live application, but I would assume it's the same. If not, I will update here later)
What am I missing?
Access tokens are cached for 9 hours. You can terminate your existing token so it refreshes.
Then it will have the newly set scopes.

Get messages from Gmail via HTTPS GET call

I'm working on an iOS application and what I'd like to do is have the app ping one universal Gmail account to check for the most recent email.
I went through the guide from Google at https://developers.google.com/gmail/api/quickstart/ios?ver=swift, but the result did not work. After some googling, it appears that some functionality may have been changed, but they haven't updated their documentation yet.
Is there a way to send credentials via https to Gmail and get email messages back? I have an OAuth key via the Gmail API manager, but when I pass it as "access_token", the response says "Login Required".
AFAIK, an error response "Login Required" can be encountered if you try to list the buckets for a project that do not provide an authorization header.
If we check Users.messages: get, it's noted that it requires authorization.
For this, you may want to check Authorizing Your App with Gmail wherein you will find these basic authorization pattern:
During development, register the application in the Google API Console.
When the app launches, request that the user grant access to data in their Google account.
If the user consents, your application requests and receives credentials to access the Gmail API.
Refresh the credentials (if necessary).
Furthermore, if your application needs to access Google APIs on behalf of the user, you should use server-side flow. Please see Implementing Server-Side Authorization for more information.
Sometime back I was involved in writing a sample application to access email from gmail but using C++ on windows. The code is at https://github.com/Panchatcharam/simple_gmail_api. I was able to successfully get emails.

Are PayPal username, password and signature secure and private?

I'm developing web-service, where one users (companies) can receive payments directly from another (company's customers). Currently company need to enter its PayPal username, password and signature to receive payments via express checkout api. Is it normal, that users (companies in my case) will enter their PayPal credentials on remote site or it's secure information? I can't find any information about it. But i found, that some services work in the same way:
http://www.getharvest.com/help/invoices-and-estimates/online-payment-and-gateways/paypal-website-payments-pro
http://support.getresponse.com/faq/how-find-api-login-data-paypal
help.wildapricot.com/display/DOC/PayPal+Payments+Pro
Also i found another way for receiving direct payments - generate button (on the PayPal site or manually), where you need only PayPal email of seller. What the differences between these methods, its advantages and disadvantages?
Yes, they are considered private. Since it grants you access to all API operations, it can also be used to empty your PayPal account.
What I would recommend instead of collecting API credentials, is to use 'third-party permissions'.
This means initially requesting permission from the account holder via a pop-up dialog. Once granted, you'll receive an access token. This access token can then be included in the HTTP header of your API calls to make calls on behalf of the customer.
Your users can either manually grant permissions to you (they'll need to log into their PayPal account and navigate to the right section within their Profile), or, if you want to make it easier, you can implement the 'Permissions API'.
I would suggest taking a look at https://developer.paypal.com/webapps/developer/docs/classic/products/permissions/ for more information.
To get started, sign up for an 'application' with PayPal via https://apps.paypal.com/.
Ensure you request access to the Permissions Service and receive an Application ID.
This will be the AppID for the Live environment. For Sandbox, you can use APP-80W284485P519543T.

PayPal OpenId Connect with MVC

Has anyone had luck getting Login With PayPal to work with MVC4? I've tried creating an extension of OAuth2Client, as well as a separate extension of OpenIdClient. Both had the same problem, which was also the problem that occurs directly from a browser.
I copy/paste the endpoint URL (with querystring) into the browser, but it always goes directly to the callback URL without displaying any PayPal-hosted login form. I can verify that the endpoint is correct by removing or altering the redirect_uri (which results in a PayPal error page.)
I am logged out of PayPal through the browser before attempting the tests, and I've tested with Chrome and IE9.
Any ideas? Thank you!
Apparently, PayPal OpenId Connect does not support the "openid" scope. This was verified for my application by using the Login With PayPal button creator and seeing "invalid scope" appended to the redirect's querystring.
The solution (remove "openid" from the scope) presents its own conundrum. According to the spec for OpenId, this scope is REQUIRED. According to the documentation for PayPal, this scope should be sent at a minimum. This looks like a problem that will be fixed, but if fixed, will the attribute be required and therefore break my application? Or will they opt to make the attribute optional.

How do i get identity token in paypal sandbox?

I don`t know where is the identity token on paypal sandbox.
is the identity token same like api number ?
Visit the Profile via www.sandbox.paypal.com, then go to https://www.sandbox.paypal.com/businessmanage/preferences/website, turn on "auto return" and "payment data transfer" and then the identity token will appear under "Payment data transfer".
If it does not display PDT token then try to purge cookies related to *.paypal.com and try the same process again. I solved this issue by following this. I found this from comment for this answer.
PayPal has updated their UI a bit. To save you some time filtering through the clutter here is the current location to generate an identity token.
Profile > My selling tools > Locate 'Website preferences' then click Update
With new look, i managed to access it by going to this link:
https://www.sandbox.paypal.com/cgi-bin/customerprofileweb?cmd=_profile-website-payments
and seller preferences is located here:
https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_profile-display-handler&tab_id=SELLER_PREFERENCES
PayPal has some troubles with generating PDT tokens in sandbox.
For now you need to post your request in the following thread, providing your sandbox merchant id:
https://www.paypal-community.com/t5/Sandbox-Environment/PDT-Token-in-Sandbox/td-p/1617493