Upon reviewing the 3DSecure GlobalPay documentation, my team decided to integrate it using JSON, incorporating our own client-side implementation. This decision was made because we already have another integration with a different 3DS verification service in production. The current integration is being developed using Vue.JS and Laravel.
In the GlobalPay documentation, they provide a sample request as follows:
curl https://api.sandbox.globalpay-ecommerce.com/3ds2/protocol-versions
-H "Content-type: application/json"
-H "X-GP-VERSION: 2.2.0"
-H "Authorization: securehash 0204a841510d67a46fbd305a60253d7bade32c6e"
-X POST
-d '{
"request_timestamp": "2019-07-30T08:41:07.590604",
"merchant_id": "MerchantId",
"account_id": "internet",
"number": "4263970000005262",
"scheme": "VISA",
"method_notification_url": "https://www.example.com/dsNotificationUrl"
}'
We have created a method within a Vue.JS component to send a POST request to this version checking endpoint. The code snippet for this can be observed below:
methods: {
verifyTds(price) {
this.setTdsAuth(price);
},
setTdsAuth() {
// Implementation details here...
},
// Other methods...
}
In generating the securehash
for the Authorization
header, we follow a specific procedure in PHP backend which involves creating a hash based on various parameters and timestamps.
The attempt to establish connection results in an ERR_CONNECTION_RESET
error and when tested in Postman, it returns a 415 HTTP response (Unsupported Media Type). We are currently in the process of verifying our credentials but are seeking advice on other potential points that should be inspected.