Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update handling for PR as a country for terminal locations #10349

Merged

Conversation

deepakpathania
Copy link
Contributor

@deepakpathania deepakpathania commented Feb 11, 2025

Fixes #10353

Changes proposed in this Pull Request

  • Return PR as a state and US as the country in case PR is set as the country for the terminal locations endpoint.

Testing instructions

  • Tests should pass.
  • Get location API should return PR as state and US as country in case PR is the location.

  • Run npm run changelog to add a changelog file, choose patch to leave it empty if the change is not significant. You can add multiple changelog files in one PR by running this command a few times.
  • Covered with tests (or have a good reason not to test in description ☝️)
  • Tested on mobile (or does not apply)

Post merge

@botwoo
Copy link
Collaborator

botwoo commented Feb 11, 2025

Test the build

Option 1. Jetpack Beta

  • Install and activate Jetpack Beta.
  • Use this build by searching for PR number 10349 or branch name update/terminal-controller-PR-country-handling in your-test.site/wp-admin/admin.php?page=jetpack-beta&plugin=woocommerce-payments

Option 2. Jurassic Ninja - available for logged-in A12s

🚀 Launch a JN site with this branch 🚀

ℹ️ Install this Tampermonkey script to get more options.


Build info:

  • Latest commit: 0f26383
  • Build time: 2025-02-12 12:32:21 UTC

Note: the build is updated when a new commit is pushed to this PR.

Copy link
Contributor

github-actions bot commented Feb 11, 2025

Size Change: 0 B

Total Size: 1.29 MB

ℹ️ View Unchanged
Filename Size
release/woocommerce-payments/assets/css/admin.css 1.38 kB
release/woocommerce-payments/assets/css/admin.rtl.css 1.38 kB
release/woocommerce-payments/assets/css/success.css 189 B
release/woocommerce-payments/assets/css/success.rtl.css 190 B
release/woocommerce-payments/dist/blocks-checkout-rtl.css 2.67 kB
release/woocommerce-payments/dist/blocks-checkout.css 2.67 kB
release/woocommerce-payments/dist/blocks-checkout.js 55.3 kB
release/woocommerce-payments/dist/cart-block.js 17.2 kB
release/woocommerce-payments/dist/cart.js 5.73 kB
release/woocommerce-payments/dist/checkout-rtl.css 1.28 kB
release/woocommerce-payments/dist/checkout.css 1.28 kB
release/woocommerce-payments/dist/checkout.js 34.6 kB
release/woocommerce-payments/dist/express-checkout-rtl.css 236 B
release/woocommerce-payments/dist/express-checkout.css 236 B
release/woocommerce-payments/dist/express-checkout.js 15.7 kB
release/woocommerce-payments/dist/frontend-tracks.js 854 B
release/woocommerce-payments/dist/index-rtl.css 35.5 kB
release/woocommerce-payments/dist/index.css 35.5 kB
release/woocommerce-payments/dist/index.js 233 kB
release/woocommerce-payments/dist/multi-currency-analytics.js 1.08 kB
release/woocommerce-payments/dist/multi-currency-rtl.css 4.29 kB
release/woocommerce-payments/dist/multi-currency-switcher-block.js 61.1 kB
release/woocommerce-payments/dist/multi-currency.css 4.29 kB
release/woocommerce-payments/dist/multi-currency.js 59.1 kB
release/woocommerce-payments/dist/order-rtl.css 740 B
release/woocommerce-payments/dist/order.css 740 B
release/woocommerce-payments/dist/order.js 42.5 kB
release/woocommerce-payments/dist/payment-gateways-rtl.css 1.34 kB
release/woocommerce-payments/dist/payment-gateways.css 1.34 kB
release/woocommerce-payments/dist/payment-gateways.js 40.1 kB
release/woocommerce-payments/dist/plugins-page-rtl.css 386 B
release/woocommerce-payments/dist/plugins-page.css 386 B
release/woocommerce-payments/dist/plugins-page.js 20.1 kB
release/woocommerce-payments/dist/product-details-rtl.css 433 B
release/woocommerce-payments/dist/product-details.css 436 B
release/woocommerce-payments/dist/product-details.js 12.5 kB
release/woocommerce-payments/dist/settings-rtl.css 12 kB
release/woocommerce-payments/dist/settings.css 11.9 kB
release/woocommerce-payments/dist/settings.js 229 kB
release/woocommerce-payments/dist/subscription-edit-page.js 703 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal-rtl.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.css 524 B
release/woocommerce-payments/dist/subscription-product-onboarding-modal.js 20.2 kB
release/woocommerce-payments/dist/subscription-product-onboarding-toast.js 730 B
release/woocommerce-payments/dist/subscriptions-empty-state-rtl.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.css 120 B
release/woocommerce-payments/dist/subscriptions-empty-state.js 19.3 kB
release/woocommerce-payments/dist/tokenized-express-checkout-rtl.css 236 B
release/woocommerce-payments/dist/tokenized-express-checkout.css 236 B
release/woocommerce-payments/dist/tokenized-express-checkout.js 16.6 kB
release/woocommerce-payments/dist/tos-rtl.css 235 B
release/woocommerce-payments/dist/tos.css 235 B
release/woocommerce-payments/dist/tos.js 21.8 kB
release/woocommerce-payments/dist/woopay-direct-checkout.js 6.13 kB
release/woocommerce-payments/dist/woopay-express-button.js 23.3 kB
release/woocommerce-payments/dist/woopay-rtl.css 4.31 kB
release/woocommerce-payments/dist/woopay.css 4.28 kB
release/woocommerce-payments/dist/woopay.js 71 kB
release/woocommerce-payments/includes/subscriptions/assets/css/plugin-page.css 625 B
release/woocommerce-payments/includes/subscriptions/assets/js/plugin-page.js 814 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/i18n-loader.js 2.46 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/build/jetpack-script-data.js 772 B
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/i18n-loader.js 1.02 kB
release/woocommerce-payments/vendor/automattic/jetpack-assets/src/js/script-data.js 69 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/babel.config.js 163 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.js 14.2 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/identity-crisis.rtl.css 2.47 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.js 28.4 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-connection.rtl.css 10 kB
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.js 280 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-admin-create-user.rtl.css 198 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.css 625 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.js 333 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-login.rtl.css 626 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/jetpack-sso-users.js 424 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-ajax.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/dist/tracks-callables.js 585 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.css 215 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-admin-create-user.js 521 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.css 721 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-login.js 412 B
release/woocommerce-payments/vendor/automattic/jetpack-connection/src/sso/jetpack-sso-users.js 632 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/about.css 1.04 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-empty-state.css 294 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin-order-statuses.css 408 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/admin.css 3.59 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/checkout.css 301 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/modal.css 746 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/view-subscription.css 574 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/css/wcs-upgrade.css 414 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin-pointers.js 543 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/admin.js 9.4 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.js 6.78 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/jstz.min.js 3.84 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-coupon.js 545 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/meta-boxes-subscription.js 2.52 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.js 22.2 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/moment.min.js 11.7 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/payment-method-restrictions.js 1.29 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/admin/wcs-meta-boxes-order.js 507 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/payment-methods.js 358 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/single-product.js 428 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/view-subscription.js 1.38 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/frontend/wcs-cart.js 782 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/modal.js 1.09 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/assets/js/wcs-upgrade.js 1.26 kB
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.css 391 B
release/woocommerce-payments/vendor/woocommerce/subscriptions-core/build/index.js 3.04 kB

compressed-size-action

@malinajirka malinajirka requested review from kidinov and removed request for malinajirka February 11, 2025 08:16
Copy link
Contributor

@anu-rock anu-rock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code-only review: The change matches what Stripe expects. Thanks for slipping this in so quickly, @deepakpathania 🎉


Review checklist

Parameter Result
Approach ✅ All good
Implementation ✅ All good
Automated tests ✅ All good
Naming ✅ All good
Typing ✅ All good
Code comments ✅ All good
Changelog ✅ All good
Documentation Not applicable
PR description ✅ All good
Testing instructions We could expand it a little to inform how to test the API.
Manual testing ⚠️ Skipped

Copy link
Contributor

@anu-rock anu-rock left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whoops, forgot to approve earlier.

@iamgabrielma
Copy link

Thanks for this @deepakpathania, I don't see any difference in the response we get from the locations endpoint. To avoid creating a new store and onboarding via Puerto Rico I've tested this PR using the Jetpack Beta option, activating the 10349 branch, and updating an existing site address that uses WooCommerce Payments to a Puerto Rico address. But we still see PR used as country, with empty value in the state property:

  • WooCommerce Version 9.7.0-beta.1
  • Jetpack Beta 4.1.1
  • WooCommerce Payments Version 9.0.0-dev_PR-10349_commit-0179630

GET /wc/v3/wc_stripe/terminal/locations/store 200 ok

{
  "id": "tml_F6kt4Qr9j4xWim",
  "object": "terminal.location",
  "address": {
    "city": "San Juan",
    "country": "PR",
    "line1": "Calle Normandie",
    "line2": "",
    "postal_code": "00907",
    "state": ""
  },
  "display_name": "indiemelon.mystagingwebsite.com",
  "livemode": false,
  "metadata": {}
}

GET /wc/v3/wc_stripe/connection_tokens 200 ok

{
  "object": "terminal.connection_token",
  "secret": "pst_test_somesecretetcetc,
  "test_mode": true
}

Which causes a 400 when we POST to /terminal/connection_tokens/activate with

{
  "error": {
    "code": "terminal_reader_invalid_location_for_activation",
    "doc_url": "https://stripe.com/docs/error-codes/terminal-reader-invalid-location-for-activation",
    "message": "The Stripe Reader M2 reader is not supported in Puerto Rico (PR) as determined by the Location this reader is registered to, tml_F6kt4Qr9j4xWim. For more information about which countries each Terminal reader may be used in, see https://stripe.com/docs/terminal/choosing-reader-and-sdk#availability.",
    "type": "invalid_request_error"
  }
}

@iamgabrielma
Copy link

Actually I see now the endpoint having /wc_stripe/, I'm not sure why but testing via Jetpack Beta makes WooCommerce Payments to be ineligible, could be related to using an a8c account or something else, so it has defaulted to the fallback payment while testing, using the Stripe plugin.

I'm trying to create a jurassic ninja PR-based store following the setup here PdfdoF-D-p2 but despite following all the instructions, is restricted (Update WooPayments business details) and payments are disabled until I provide a Social Security Number, so I cannot test those with the reader.

Could you provide credentials to a Puerto Rico-based store with functional WooCommerce Payments for testing?

@deepakpathania
Copy link
Contributor Author

deepakpathania commented Feb 12, 2025

Could you provide credentials to a Puerto Rico-based store with functional WooCommerce Payments for testing?

I think you could reach out to @malinajirka to assist with getting this setup. Or let me check if someone from the team can assist here.

@iamgabrielma
Copy link

I think you could reach out to @malinajirka to assist with getting this setup. Or let me check if someone from the team can assist here.

Thanks! I've tried a couple times and finally passed verification on a subsequent try. It seems we have a winner! It works 🎉

v1/terminal/locations/tml_F6lNlgv4nEj032

{
  "id": "tml_F6lNlgv4nEj032",
  "object": "terminal.location",
  "address": {
    "city": "San Juan",
    "country": "US",
    "line1": "Calle Normandie",
    "line2": "",
    "postal_code": "00907",
    "state": "PR"
  },
  "display_name": "exactly-victorian-rabbit.jurassic.ninja",
  "livemode": false,
  "metadata": {}
}

@deepakpathania deepakpathania added this pull request to the merge queue Feb 12, 2025
Merged via the queue into develop with commit 21d2c16 Feb 12, 2025
28 checks passed
@deepakpathania deepakpathania deleted the update/terminal-controller-PR-country-handling branch February 12, 2025 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Puerto Rico stores fail to process terminal payments due to incorrect country/state handling
4 participants