AI Tools & Scripts
PayPal Integration Check
Check PayPal checkouts before you go live: client secrets in the browser or in code, order amounts taken from the request, browser captures your server trusts, unverified webhooks and IPN, sandbox in production and deprecated SDKs.
What you get: 1 file · 55.97 KB · ZIP
See purchase optionsProduct description
value: req.body.total in a PayPal order lets a buyer pay 0.01 for anything, and a webhook route that marks orders paid without calling verify-webhook-signature lets anyone post a fake PAYMENT.CAPTURE.COMPLETED. This skill finds those and ten other PayPal integration mistakes before you take real payments, and tells you how to fix each one.
Your agent runs a scanner on your server code (JavaScript and TypeScript, Python, PHP, Ruby, Java, C#, Go), pages and components (HTML templates, JSX/TSX, Vue, Svelte), .env files, app config and dependency manifests that mention PayPal, PayPal webhook event types or IPN fields. It follows request values through assignments, destructuring, simple wrappers and helper-function parameters, so a price looked up on the server with a client-sent ID is not reported, the last assignment before a use wins, and a donation amount checked against your presets or limits passes. It judges each webhook route on its own (middleware, guards and verify calls count), tells browser code from server code, and looks across the whole project before it calls a browser capture trusted. It knows the PayPal Server SDK models, the Orders v2 REST body, the JavaScript SDK actions helpers and checkout.js. It never runs your code and never calls PayPal. It returns BLOCK, REVIEW, or NOT FLAGGED, with the file, line, reason, and a safer approach. Secrets are never printed.
What it checks
BLOCK (fix before shipping)
- P01: the client secret in a public env variable (NEXT_PUBLIC_, VITE_, REACT_APP_ and similar), a Next.js env block, a bundler define, Nuxt public runtime config or browser code, or an OAuth token request from the browser
- P02: PayPal client secrets, NVP/SOAP API passwords or signatures, access tokens, Basic credentials or Braintree production tokens written in code or committed config, including literal fallbacks and .env.example
- P03: order amount, currency or purchase units taken from the request without an allow-list or limit check, summed from client-sent prices, or the whole request body passed to PayPal
- P04: actions.order.capture() in the browser whose result is sent to your server or a success page, with no server code that asks PayPal for the order or verifies a webhook
- P05: webhook routes with no signature verification (Express, Next.js, NestJS, Flask, Django, Laravel, Rails, Go) and IPN listeners with no cmd=_notify-validate postback
REVIEW (check before release)
- P11: sandbox hosts or sandbox mode in production config, or live mode pointing at a sandbox host
- P12: deprecated or abandoned PayPal SDKs (paypal-rest-sdk, @paypal/checkout-server-sdk, paypalrestsdk, the old PHP, Ruby, .NET and Java SDKs, checkout.js)
- P13: server captures that mark orders paid or deliver without checking COMPLETED
- P14: orders created in the browser with actions.order.create()
- P15: IPN listeners that skip the payment_status, receiver and mc_gross checks
- P16: TLS certificate checks turned off in code that talks to PayPal
- P17: PayPal Server SDK logging with sensitive headers unmasked, which writes the access token to logs
What's included
- The scanner (Python 3.9+, standard library only)
- A rules guide with the reason, safer approach and official PayPal documentation link for each rule
- A risky and a safe example project, and the real report the scanner produces on the risky one
Limits
It reads each file as written. Values passed through other modules, databases or framework internals are not followed, request values in Java, C# and Go are followed only through @RequestBody and [FromBody] parameters, and dashboard settings (webhook subscriptions, live credentials, receiving preferences) are not visible. P04 sees only the files you scan, so scan the whole project. Vaulting, payouts and subscription logic are not checked beyond the rules above. NOT FLAGGED is not a guarantee.
Contents
One ZIP file with 22 files: SKILL.md, the scanner in scripts/ (7 Python files), references/rules.md (every rule with its reason and safer approach), and examples/ (12 example files plus report.md, the real scanner output on the risky example).
How to use: This is an agent skill: a folder with a SKILL.md file and Python scripts that an AI coding agent such as Claude Code, Cursor, or Codex CLI can run. Unzip it into your agent's skills folder (for Claude Code: ~/.claude/skills/), then ask your agent to check your project. The scripts also run on their own with Python 3.9 or newer, with nothing to install. They read your files only: no network access, and nothing is sent anywhere.
What you get
1 file · 55.97 KB
- paypal-integration-check-1.0.0.zipZIP · 55.97 KB
AI Tools & Scripts
PayPal Integration Check
Check PayPal checkouts before you go live: client secrets in the browser or in code, order amounts taken from the request, browser captures your server trusts, unverified webhooks and IPN, sandbox in production and deprecated SDKs.
Getly opened the uploaded files and found nothing that would stop them opening. It is not a virus scan or a quality rating.
Tags
Frequently asked questions
Do I get access instantly?
Yes. This is a digital product - you can download it right after checkout, straight from your library.
Can I use it for commercial projects?
Yes. Commercial use is allowed: use it in your own business and in things you sell. You may not resell or redistribute the file itself.
What's your refund policy?
You can request a refund within 30 days. If something isn't right, request it from your order and the Getly team reviews it.
What file formats and sizes will I get?
You'll download 1 file - ZIP - 55.97 KB in total.
Do I get free updates?
Yes - when the seller ships a new version, you can re-download the latest files from your library at no extra cost. Check the changelog for recent updates.
Price
$5.00



