49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
"""
|
|
Simple test script to verify Square webhook signature verification works correctly.
|
|
|
|
This uses the same test data from Square's documentation to ensure our implementation
|
|
matches their expected behavior.
|
|
"""
|
|
|
|
import sys
|
|
|
|
sys.path.insert(0, "src")
|
|
|
|
from square.utilities.webhooks_helper import is_valid_webhook_event_signature
|
|
|
|
# Test data from Square's documentation
|
|
TEST_BODY = '{"hello":"world"}'
|
|
TEST_SIGNATURE = "2kRE5qRU2tR+tBGlDwMEw2avJ7QM4ikPYD/PJ3bd9Og="
|
|
TEST_SIGNATURE_KEY = "asdf1234"
|
|
TEST_NOTIFICATION_URL = "https://example.com/webhook"
|
|
|
|
|
|
def test_signature_validation():
|
|
"""Test that signature validation works with Square SDK"""
|
|
|
|
print("Testing Square webhook signature validation...")
|
|
print(f"Body: {TEST_BODY}")
|
|
print(f"Signature: {TEST_SIGNATURE}")
|
|
print(f"Key: {TEST_SIGNATURE_KEY}")
|
|
print(f"URL: {TEST_NOTIFICATION_URL}")
|
|
print()
|
|
|
|
# This should return True with Square's test data
|
|
is_valid = is_valid_webhook_event_signature(
|
|
TEST_BODY, TEST_SIGNATURE, TEST_SIGNATURE_KEY, TEST_NOTIFICATION_URL
|
|
)
|
|
|
|
if is_valid:
|
|
print("✅ SUCCESS: Signature validation passed!")
|
|
print("The webhook implementation is using Square SDK correctly.")
|
|
return True
|
|
else:
|
|
print("❌ FAILURE: Signature validation failed!")
|
|
print("Something is wrong with the signature verification.")
|
|
return False
|
|
|
|
|
|
if __name__ == "__main__":
|
|
success = test_signature_validation()
|
|
sys.exit(0 if success else 1)
|