Click the button to make a payment to TP

5232105022907162 Jane Jones 03/2025 204 (classic, NO 3d)
4200000000000091 Jane Jones 05/2031 123 (Secured 3d)
Tp docs:
https://totalprocessing.docs.oppwa.com/tutorials/server-to-server/standalone3DS

1) On submit, call backend on /makePayment which fires the following to TP

            POST eu-test.oppwa.com:443/v1/threeDSecure
            Authorization: 'Bearer OGFjN2E0Y2E4ODA1MzRjODAxODgwNTc1NDAzNDAwYjN8U1dZZXNnMmJ5NQ=='
            {
                entityId: '8ac7a4ca880534c801880575423200b5',
                amount: '12.50',
                currency: 'EUR',
                paymentBrand: 'MASTER',
                merchantTransactionId: 'order99234',
                transactionCategory: 'EC',
                'card.holder': 'John Smith',
                'card.number': '5200000000000015',
                'card.expiryMonth': '05',
                'card.expiryYear': '2031',
                'card.cvv': '123',
                'merchant.name': 'MerchantCo',
                'merchant.city': 'Munich',
                'merchant.country': 'DE',
                'merchant.mcc': '5399',
                shopperResultUrl: 'http://catalog.payment.eatech.al/aci/s2s-standalone/frontend/redirectin-page.html',
                'customer.ip': '141.98.140.117',
                'customer.browser.acceptHeader': 'text/html',
                'customer.browser.screenColorDepth': '48',
                'customer.browser.javaEnabled': 'false',
                'customer.browser.language': 'en',
                'customer.browser.screenHeight': '1200',
                'customer.browser.screenWidth': '1600',
                'customer.browser.timezone': '60',
                'customer.browser.challengeWindow': '4',
                'customer.browser.userAgent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',
                testMode: 'EXTERNAL',
            }
              
            RESPONSE
            {
                "id": "8ac7a49f8e320e7c018e3369ce872672",
                "registrationId": "8ac7a4a28e3218c8018e3369cdd61185",
                "paymentType": "DB",
                "paymentBrand": "VISA",
                "result": {
                    "code": "000.200.000",
                    "description": "transaction pending"
                },
                "card": {
                    "bin": "420000",
                    "last4Digits": "0091",
                    "holder": "Jane Jones",
                    "expiryMonth": "05",
                    "expiryYear": "2031"
                },
                "customer": {
                    "browser": {
                        "acceptHeader": "text/html",
                        "language": "en",
                        "screenHeight": "1200",
                        "screenWidth": "1600",
                        "timezone": "60",
                        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36",
                        "javaEnabled": "false",
                        "screenColorDepth": "48",
                        "challengeWindow": "4"
                    }
                },
                "threeDSecure": {
                    "challengeIndicator": "4"
                },
                "customParameters": {
                    "OPP_card.bin": "420000"
                },
                "redirect": {
                    "url": "https://test.ppipe.net/connectors/asyncresponse_simulator;jsessionid=2F3713760EF9487A8213EF6612186565.uat01-vm-con02?asyncsource=ACI_3DS_2&type=methodRedirect&cdkForward=true&ndcid=8ac7a4ca880534c801880575423200b5_ff2e8352c3ef4a1db430bc92c56e6874",
                    "parameters": [],
                    "preconditions": [
                        {
                            "origin": "iframe#hidden",
                            "waitUntil": "iframe#load",
                            "description": "Hidden iframe post for 3D Secure 2.0",
                            "url": "https://test.ppipe.net/connectors/demo/submit?action=ACI3DS2AccessControlServer&acsRequest=METHOD",
                            "method": "POST",
                            "parameters": [
                                {
                                    "name": "threeDSMethodData",
                                    "value": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0Lm9wcHdhLmNvbS9jb25uZWN0b3JzL2FyX3NpbXVsYXRvci8zZHMyO2pzZXNzaW9uaWQ9MkYzNzEzNzYwRUY5NDg3QTgyMTNFRjY2MTIxODY1NjUudWF0MDEtdm0tY29uMDI_YXN5bmNzb3VyY2U9QUNJXzNEU18yJnR5cGU9bWV0aG9kTm90aWZpY2F0aW9uJm5kY2lkPThhYzdhNGNhODgwNTM0YzgwMTg4MDU3NTQyMzIwMGI1X2ZmMmU4MzUyYzNlZjRhMWRiNDMwYmM5MmM1NmU2ODc0IiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI0YmE0ODVlMC1jOTMxLTQ5MzktOGZiYy04MGZhYTlhYWNmMjEifQ"
                                }
                            ]
                        }
                    ]
                },
                "risk": {
                    "score": "0"
                },
                "buildNumber": "4cf0da2a0da510e18c9a3ee629818eeb6bd84fff@2024-03-07 15:31:01 +0000",
                "timestamp": "2024-03-12 16:05:55+0000",
                "ndc": "8ac7a4ca880534c801880575423200b5_ff2e8352c3ef4a1db430bc92c56e6874"
            }
        

2) When TP redirect to shopperResultUrl, we call backend on /verifyPaymentRequest which fires the following to TP

            GET eu-test.oppwa.com:443/v1/payments/${id}?entityId=8ac7a4ca880534c801880575423200b5
            Authorization: 'Bearer OGFjN2E0Y2E4ODA1MzRjODAxODgwNTc1NDAzNDAwYjN8U1dZZXNnMmJ5NQ=='
              
            RESPONSE
            {
              "id":"8ac7a4a28e3c5bf4018e3ce6ffce46bf",
              "paymentBrand":"MASTER",
              "amount":"12.50",
              "currency":"EUR",
              "merchantTransactionId":"order99234",
              "result":{
                "code":"000.200.000",
                "description":"transaction pending"
              },
              "card":{
                "bin":"520000",
                "last4Digits":"0015",
                "holder":"John Smith",
                "expiryMonth":"12",
                "expiryYear":"2025"
              },
              "customer":{
                "ip":"192.168.0.1",
                "browser":{
                  "acceptHeader":"text/html",
                  "language":"de",
                  "screenHeight":"1200",
                  "screenWidth":"1600",
                  "timezone":"60",
                  "userAgent":"Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)",
                  "javaEnabled":"false",
                  "screenColorDepth":"48",
                  "challengeWindow":"4"
                }
              },
              "threeDSecure":{
                "eci":"01"
              },
              "redirect":{
                "url":"https://test.ppipe.net/connectors/asyncresponse_simulator;jsessionid=B46D50C78240ABE8C57B7BA166151E2D.uat01-vm-con04?asyncsource=ACI_3DS_2&type=methodRedirect&cdkForward=true&ndcid=8ac7a4ca880534c801880575423200b5_2a59b8496e1044b5ad98d464ac3a47de",
                "parameters":[
                  
                ],
                "preconditions":[
                  {
                    "origin":"iframe#hidden",
                    "waitUntil":"iframe#load",
                    "description":"Hidden iframe post for 3D Secure 2.0",
                    "url":"https://test.ppipe.net/connectors/demo/submit?action=ACI3DS2AccessControlServer&acsRequest=METHOD",
                    "method":"POST",
                    "parameters":[
                      {
                        "name":"threeDSMethodData",
                        "value":"eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly90ZXN0Lm9wcHdhLmNvbS9jb25uZWN0b3JzL2FyX3NpbXVsYXRvci8zZHMyO2pzZXNzaW9uaWQ9QjQ2RDUwQzc4MjQwQUJFOEM1N0I3QkExNjYxNTFFMkQudWF0MDEtdm0tY29uMDQ_YXN5bmNzb3VyY2U9QUNJXzNEU18yJnR5cGU9bWV0aG9kTm90aWZpY2F0aW9uJm5kY2lkPThhYzdhNGNhODgwNTM0YzgwMTg4MDU3NTQyMzIwMGI1XzJhNTliODQ5NmUxMDQ0YjVhZDk4ZDQ2NGFjM2E0N2RlIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI2YzAyMDEzNC03ZDlmLTQ1MmMtODU2OC04ZGRhZjc1NzM4Y2YifQ"
                      }
                    ]
                  }
                ]
              },
              "buildNumber":"67d2fdf5566182f73f4c1f935a02b4d707a6e035@2024-03-14 09:51:06 +0000",
              "timestamp":"2024-03-14 12:19:15+0000",
              "ndc":"8ac7a4ca880534c801880575423200b5_2a59b8496e1044b5ad98d464ac3a47de"
            }