Testing your Integration
...
Testing your Wallet Payment In...
Testing Digital Wallet Payments - via API
testing digital wallet payments via api testing card payments for your digital wallet payments via direct api integration decline scenarios for wallet payments cannot be tested in the sandbox environment the payment or preauth request can be sent with wallet details from apple pay™ or google pay™ the payment token provided by the apple pay session the payment token generated by the google pay api apple pay™ prerequisites before you can process apple pay™ payments and preauths with judopay, you will need to ios docid 09p1cru0cbxjkzea 0zpi to get your merchant ids contact support to configure your wallet payments credentials google pay™ prerequisites before you can process google pay™ payments and preauths with judopay, you will need to create a google pay payments profile to get your merchant ids contact support to configure your wallet payments credentials wallet payment scenarios (positive flow) the digital wallet payment flow provides consumers with an extra layer of security, encrypting and decrypting the card details sent in the payload by replacing the consumer's card details with a device token, or dynamic security code what is the difference between dpan and fpan? device primary account number ( dpan ) a device token is sent in the payload, instead of the card number sca compliant funding primary account number ( fpan ) the card number is sent in the payload requires 3d secure 2 authentication to become sca compliant judopay's transaction api triggers the 3d secure 2 flow , to validate the transaction important to consider for apple pay™and google pay™(dpan) we recommend generating a unique apple pay™ and google pay™ payload for each test, to mimic the production environment where payloads can only be used once we do not recommend making merchant initiated transactions using card tokens that were generated by apple pay™ or google pay™ dpan you may experience a lower transaction success ratio apple pay™ ( dpan ) mobile and web integrations sca compliant for a successful end to end wallet payment testing journey, it is recommended to perform wallet test scenarios in a production environment use live cards to process test payments and preauths ensure you have set up your apple pay™ certificate see, web sdk docid 40dwe6lbub7vdkza1qydc google pay™ ( dpan ) mobile integration sca compliant for a successful end to end wallet payment testing journey, it is recommended to perform wallet test scenarios in a production environment use live cards to process test payments and preauths the payload is the same when using google pay™ dpan, or fpan when sending the judoid in the payload to your google pay account, the field is displayed as gatewaymerchantid in the tokenization object for example, the value used in gatewaymerchantid is the same value as your judoid " judoid" " 100781350 " "gatewaymerchantid" " 100781350 " apple pay™ and google pay™ (dpan) scenarios true false 405false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type important to consider for google pay™ (fpan) web integration requires 3d secure 2 authentication to become sca compliant judopay's transaction api triggers the 3d secure 2 flow , to validate the transaction for more details on the 3d secure 2 flow, see how 3d secure works docid\ k7fnzbol73ssctbct4nxm to add your test card suite to your digital wallet to process test payments and preauths, register your google pay wallet details for the cards in your test card suite are hard coded into the test wallet, therefore some negative scenarios cannot be simulated, due to limitations to google pay™s test environment for example you cannot simulate an incorrect cv2, or insufficient funds you will only receive a success response no charge will be made on the test cards the payload is the same when using google pay™ fpan, or dpan when sending the judoid in the payload to your google pay account, the field is displayed as gatewaymerchantid in the tokenization object " judoid" " 100781350 " "gatewaymerchantid" " 100781350 " we recommend generating a unique google pay™ payload for each test, to mimic the production environment where payloads can only be used once google pay™ (fpan) scenarios judopay's transaction api triggers the 3d secure 2 flow , to validate the transaction when sending the fpan for each 3d secure 2 scenario, different calls are made from the front end to the back end using a specific cardholdername as specified in the testing 3d secure 2 authentication docid\ bdcgiyqdm3mle ubxp1yr , will correspond to an expected transaction result it is useful to have an understanding of the full 3ds 2 payment flow, including the conditional steps, to verify how it relates to the user journey in your app testing 3d secure 2 authentication docid\ bdcgiyqdm3mle ubxp1yr testing 3d secure 2 authentication docid\ bdcgiyqdm3mle ubxp1yr true false 170,254false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type for more information on api credentials and permissions, see introduction docid\ s 8hoamytkgy13t0p657 request parameters the payment or preauth request can be sent with wallet details from apple pay™ or google pay™ sandbox endpoint https //api sandbox judopay com/transactions/payments sandbox endpoint https //api sandbox judopay com/transactions/preauths http method post header parameters for more information, see authentication methods docid\ ylkw5coh5nqnfq3j wjk2 false false 265,403false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type body parameters paymentrequestapplepay true false 222false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type paymentrequestgooglepay true false 222false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type apple pay™ and google pay™ request example apple pay for information on how to generate your token, see apple pay payment token google pay the payload is the same when using google pay™ dpan, or fpan for information on how to generate your token, see google pay payment token apple pay request example { "pkpayment" { "token" { "paymentnetwork" "visa", "paymentdata" { "data" "xxx", "signature" "xxx", "header" { "publickeyhash" "xxx", "ephemeralpublickey" "xxx", "transactionid" "xxx" }, "version" "ec v1" }, "paymentinstrumentname" "visa 1234" } }, "judoid" 100100100, "yourconsumerreference" "2b45fd3f cee5 4e7e 874f 28051db65408", "yourpaymentreference" "6482c678 cad3 4efd b081 aeae7a89a134", "amount" 1 01, "currency" "gbp", "yourpaymentmetadata" { "internallocationref" "example", "internalid" 99 } } google pay request example { "googlepaywallet" { "cardnetwork" "visa", "carddetails" "1234", "token" "{\\"signature\\" \\"xxx\\",\\"protocolversion\\" \\"ecv1\\",\\"signedmessage\\" \\"{\\\\\\"encryptedmessage\\\\\\" \\\\\\"xxx\\\\\\",\\\\\\"ephemeralpublickey\\\\\\" \\\\\\"xxx\\\\\\",\\\\\\"tag\\\\\\" \\\\\\"xxx\\\\\\"}\\"}" }, "judoid" 100100100, "yourconsumerreference" "2b45fd3f cee5 4e7e 874f 28051db65408", "yourpaymentreference" "6482c678 cad3 4efd b081 aeae7a89a134", "amount" 1 01, "currency" "gbp", "yourpaymentmetadata" { "internallocationref" "example", "internalid" 99 } } response example { "receiptid" "914568453493526528", "yourpaymentreference" "34a73594 f3b2 414c a5c9 58679530b418", "type" "payment", "result" "success", "judoid" 100502814, "originalamount" "5 00", "netamount" "5 00", "amount" "5 00", "currency" "gbp", "carddetails" { "cardlastfour" "1111", "enddate" "1222", "cardtoken" "sof xfmzmenor sj9mtrcvrxhw", "cardtype" 1, "cardscheme" "visa", "cardfunding" "credit", "cardcategory" "", "cardcountry" "us", "bank" "jpmorgan chase bank, n a " }, "cardaddress" { "address1" "cardholder house", "address2" "1 cardholder street", "town" "cardholder town", "postcode" "ab1 2cd", "countrycode" 826 }, "consumer" { "yourconsumerreference" "2b45fd3f cee5 4e7e 874f 28051db65408", }, } wallet payment scenarios (negative flow) decline scenarios for wallet payments cannot be tested in the sandbox environment important to consider how your app handles negative flows your customer's experience should a negative flow occur logic to communicate error messages customise how your app responds how to maintain application consistency limited test coverage is possible in the sandbox environment the suggested negative test scenarios refer to model and processing error codes and information on why the transaction request failed judopay's validation checks, which are similar to card payment scenarios true false 276,112false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type false unhandled content type where the codes remain fixed, the descriptions may change you should not build any error handling logic based on these descriptions for a list of possible error codes, types and descriptions, see codes and descriptions docid zrsihomuew xnrq4pbtj next steps using the response information from a successful wallet payment test transaction, you can test the following scenarios directly call the transaction api to make a testing collections docid\ yvjgzt2gxwbdxm3m0wemu testing refunds docid\ mebkvlfmxdp3kolys0uda testing voids docid\ dmbakskjll551suxqipum