<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SOAP and Fluid Token vs mandatory CC/PAN fields in cybersource APIs</title>
    <link>https://community.developer.cybersource.com/t5/cybersource-APIs/SOAP-and-Fluid-Token-vs-mandatory-CC-PAN-fields/m-p/89072#M1466</link>
    <description>&lt;P&gt;OK…figured it out, but not without trawling deep into the PHP class structure.&amp;nbsp; Here’s what I found:&lt;/P&gt;&lt;P&gt;This is an example using the Cybersource REST Api Samples, which can be found on Github here:&amp;nbsp; &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php" target="_blank" rel="noopener"&gt;https://github.com/CyberSource/cybersource-rest-samples-php&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;U&gt;&lt;STRONG&gt;Preconditions / One time setup&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Use the Business Dashboard Key Management Screen [ &lt;A href="https://ubctest.cybersource.com/ebc2/app/PaymentConfiguration/KeyManagement" target="_self"&gt;https://ubctest.cybersource.com/ebc2/app/PaymentConfiguration/KeyManagement&lt;/A&gt;] to create a new REST-Shared Secret api key and secret.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Keep these handy, along with your Merchant ID (i.e. thiscompany_12345678) found at the top of the dashboard screen.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Going to assume that you all know how to download these sample PHPs to your server.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Edit the &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/blob/master/Resources/ExternalConfiguration.php" target="_self"&gt;./Resources/ExternalConfiguration.php&lt;/A&gt; file and change these three lines to have the same value as the Shared Secret api and secret, and your merchant id, &lt;U&gt;that you generated in step ‘a’:&lt;/U&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;$this-&amp;gt;merchantID = "testrest";&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;apiKeyID = "08c94330-f618-42a3-b09d-e1e43be5efda";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$this-&amp;gt;secretKey = "yBJxy6LjM2TmcPGu+GaJrHtkke25fPpUX+UY6/L/1tE=";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;…and save it.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Other pre-condition – I’m also going to assume that you can generate a &lt;A href="https://developers.google.com/pay/api/web/overview" target="_self"&gt;Google Pay Token&lt;/A&gt; via your app.&amp;nbsp; We’ll come back to this later.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;U&gt;&lt;STRONG&gt;Making a payment test program&lt;/STRONG&gt;&lt;/U&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;In the same library of files, navigate down to &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/tree/master/Samples/Payments/Payments" target="_self"&gt;./Samples/Payments/Payments&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Copy the file &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/blob/master/Samples/Payments/Payments/DigitalPaymentGooglePay.php" target="_self"&gt;DigitalPaymentGooglePay.php&lt;/A&gt; to&amp;nbsp; new file name, say, testPay.php&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Edit the testPay.php file, and make the following changes:&lt;BR /&gt;&lt;BR /&gt;aa. Change the value of&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $clientReferenceInformationArr = [&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "code" =&amp;gt; "&lt;STRONG&gt;xxxx&lt;/STRONG&gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;…and replace ‘&lt;STRONG&gt;xxxx&lt;/STRONG&gt;’ with an easily remembered string (so you know it is “your” transaction that has been tested.).&amp;nbsp; &amp;nbsp;I use a random order number such as “1234-001”.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Make sure this statement says this (it should already...012 means 'Google Pay'):&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $processingInformationArr = [&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "capture" =&amp;gt; $capture,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "paymentSolution" =&amp;gt; "012"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;cc. Immediately under that statement &lt;STRONG&gt;INSERT&lt;/STRONG&gt; the following three statements like so:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;$paymentInformationFluidDataSet = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "value" =&amp;gt; "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;yyy…yyy==&lt;/STRONG&gt;&lt;/FONT&gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;$paymentInformationFluidData = new CyberSource\Model\Ptsv2paymentsPaymentInformationFluidData($paymentInformationFluidDataSet);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;$paymentInformationArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "fluidData" =&amp;gt; $paymentInformationFluidData&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;** where “&lt;FONT color="#FF0000"&gt;yyy…yyy==&lt;/FONT&gt;” is your loooooong&amp;nbsp; Base64 encoded Google Pay token mentioned in step “1e” above”&lt;/P&gt;&lt;P&gt;dd. DELETE or comment out the lines that read:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $paymentInformationTokenizedCardArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "number" =&amp;gt; "4111111111111111",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "expirationMonth" =&amp;gt; "12",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "expirationYear" =&amp;gt; "2020",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cryptogram" =&amp;gt; "EHuWW9PiBkWvqE5juRwDzAUFBAk=",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "transactionType" =&amp;gt; "1"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…and…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;FONT face="courier new,courier" color="#FF0000"&gt;$paymentInformationTokenizedCard = new CyberSource\Model\Ptsv2paymentsPaymentInformationTokenizedCard($paymentInformationTokenizedCardArr);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…and…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;FONT face="courier new,courier" color="#FF0000"&gt; &amp;nbsp;$paymentInformationArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"tokenizedCard" =&amp;gt; $paymentInformationTokenizedCard&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…as these populate the paymentInformation object with the plain old PAN and expiry date, which we &lt;U&gt;do not need&lt;/U&gt; as its encoded in the token.&lt;/P&gt;&lt;P&gt;ee. Save it&lt;/P&gt;&lt;P&gt;ff. run it&amp;nbsp; &amp;nbsp;(i.e. php testPay.php)&lt;/P&gt;&lt;P&gt;gg.Celebrate&lt;/P&gt;&lt;P&gt;hh. Take a deep breath and take a long run up to do similarly for Apple Pay.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Sun, 24 Mar 2024 12:55:27 GMT</pubDate>
    <dc:creator>mr_al</dc:creator>
    <dc:date>2024-03-24T12:55:27Z</dc:date>
    <item>
      <title>SOAP and Fluid Token vs mandatory CC/PAN fields</title>
      <link>https://community.developer.cybersource.com/t5/cybersource-APIs/SOAP-and-Fluid-Token-vs-mandatory-CC-PAN-fields/m-p/89069#M1463</link>
      <description>&lt;P&gt;Hi all - this one is doing my head in so would appreciate some pointers.&amp;nbsp; Here is the short version:&lt;/P&gt;&lt;P&gt;1. Wanting to submit a simple sale/payment via a web app using Google Pay (and eventually Apple Pay)&lt;/P&gt;&lt;P&gt;2. Have generated the Google Pay token OK, converted this to Base64 and added it into paymentInformation-&amp;gt;fluidData-&amp;gt;value field&lt;/P&gt;&lt;P&gt;3. All the other mandatory fields are provided&lt;/P&gt;&lt;P&gt;4. BUT the call to -&amp;gt;runTransaction will REJECT if we don't have the full 'card' details (i.e. PAN/account number, expiry month and date) included in the payload.&lt;/P&gt;&lt;P&gt;5. This is contrary to logic, as that's the whole idea of having the tokenised card information provided by Google (or Apple)&lt;/P&gt;&lt;P&gt;6.&amp;nbsp; And yes, processingInformation-&amp;gt;paymentSolution is set to "012"&lt;/P&gt;&lt;P&gt;7. Same symptoms using the php-sdk client.&lt;/P&gt;&lt;P&gt;Anyone figured out a root cause for this sort of behaviour, and what the magic configuration is to get Cybersource's gateway to realise it is a legit call with a legit Google Pay token, and thus it should NOT go looking for full PAN and all the trimmings?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thanks in advance,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;mr_al&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Mar 2024 02:04:44 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/cybersource-APIs/SOAP-and-Fluid-Token-vs-mandatory-CC-PAN-fields/m-p/89069#M1463</guid>
      <dc:creator>mr_al</dc:creator>
      <dc:date>2024-03-24T02:04:44Z</dc:date>
    </item>
    <item>
      <title>Re: SOAP and Fluid Token vs mandatory CC/PAN fields</title>
      <link>https://community.developer.cybersource.com/t5/cybersource-APIs/SOAP-and-Fluid-Token-vs-mandatory-CC-PAN-fields/m-p/89072#M1466</link>
      <description>&lt;P&gt;OK…figured it out, but not without trawling deep into the PHP class structure.&amp;nbsp; Here’s what I found:&lt;/P&gt;&lt;P&gt;This is an example using the Cybersource REST Api Samples, which can be found on Github here:&amp;nbsp; &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php" target="_blank" rel="noopener"&gt;https://github.com/CyberSource/cybersource-rest-samples-php&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;U&gt;&lt;STRONG&gt;Preconditions / One time setup&lt;/STRONG&gt;&lt;/U&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Use the Business Dashboard Key Management Screen [ &lt;A href="https://ubctest.cybersource.com/ebc2/app/PaymentConfiguration/KeyManagement" target="_self"&gt;https://ubctest.cybersource.com/ebc2/app/PaymentConfiguration/KeyManagement&lt;/A&gt;] to create a new REST-Shared Secret api key and secret.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Keep these handy, along with your Merchant ID (i.e. thiscompany_12345678) found at the top of the dashboard screen.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Going to assume that you all know how to download these sample PHPs to your server.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Edit the &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/blob/master/Resources/ExternalConfiguration.php" target="_self"&gt;./Resources/ExternalConfiguration.php&lt;/A&gt; file and change these three lines to have the same value as the Shared Secret api and secret, and your merchant id, &lt;U&gt;that you generated in step ‘a’:&lt;/U&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;$this-&amp;gt;merchantID = "testrest";&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; $this-&amp;gt;apiKeyID = "08c94330-f618-42a3-b09d-e1e43be5efda";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$this-&amp;gt;secretKey = "yBJxy6LjM2TmcPGu+GaJrHtkke25fPpUX+UY6/L/1tE=";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;…and save it.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Other pre-condition – I’m also going to assume that you can generate a &lt;A href="https://developers.google.com/pay/api/web/overview" target="_self"&gt;Google Pay Token&lt;/A&gt; via your app.&amp;nbsp; We’ll come back to this later.&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;&lt;U&gt;&lt;STRONG&gt;Making a payment test program&lt;/STRONG&gt;&lt;/U&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;In the same library of files, navigate down to &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/tree/master/Samples/Payments/Payments" target="_self"&gt;./Samples/Payments/Payments&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Copy the file &lt;A href="https://github.com/CyberSource/cybersource-rest-samples-php/blob/master/Samples/Payments/Payments/DigitalPaymentGooglePay.php" target="_self"&gt;DigitalPaymentGooglePay.php&lt;/A&gt; to&amp;nbsp; new file name, say, testPay.php&lt;BR /&gt;&lt;BR /&gt;&lt;/LI&gt;&lt;LI&gt;Edit the testPay.php file, and make the following changes:&lt;BR /&gt;&lt;BR /&gt;aa. Change the value of&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $clientReferenceInformationArr = [&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "code" =&amp;gt; "&lt;STRONG&gt;xxxx&lt;/STRONG&gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;…and replace ‘&lt;STRONG&gt;xxxx&lt;/STRONG&gt;’ with an easily remembered string (so you know it is “your” transaction that has been tested.).&amp;nbsp; &amp;nbsp;I use a random order number such as “1234-001”.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Make sure this statement says this (it should already...012 means 'Google Pay'):&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $processingInformationArr = [&lt;/FONT&gt;&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "capture" =&amp;gt; $capture,&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "paymentSolution" =&amp;gt; "012"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;BR /&gt;&lt;BR /&gt;cc. Immediately under that statement &lt;STRONG&gt;INSERT&lt;/STRONG&gt; the following three statements like so:&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;FONT face="courier new,courier"&gt;$paymentInformationFluidDataSet = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; "value" =&amp;gt; "&lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;yyy…yyy==&lt;/STRONG&gt;&lt;/FONT&gt;"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;$paymentInformationFluidData = new CyberSource\Model\Ptsv2paymentsPaymentInformationFluidData($paymentInformationFluidDataSet);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;$paymentInformationArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "fluidData" =&amp;gt; $paymentInformationFluidData&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;** where “&lt;FONT color="#FF0000"&gt;yyy…yyy==&lt;/FONT&gt;” is your loooooong&amp;nbsp; Base64 encoded Google Pay token mentioned in step “1e” above”&lt;/P&gt;&lt;P&gt;dd. DELETE or comment out the lines that read:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $paymentInformationTokenizedCardArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "number" =&amp;gt; "4111111111111111",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "expirationMonth" =&amp;gt; "12",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "expirationYear" =&amp;gt; "2020",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "cryptogram" =&amp;gt; "EHuWW9PiBkWvqE5juRwDzAUFBAk=",&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "transactionType" =&amp;gt; "1"&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp; ];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…and…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;FONT face="courier new,courier" color="#FF0000"&gt;$paymentInformationTokenizedCard = new CyberSource\Model\Ptsv2paymentsPaymentInformationTokenizedCard($paymentInformationTokenizedCardArr);&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…and…&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;FONT face="courier new,courier" color="#FF0000"&gt; &amp;nbsp;$paymentInformationArr = [&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"tokenizedCard" =&amp;gt; $paymentInformationTokenizedCard&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" color="#FF0000"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;];&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;…as these populate the paymentInformation object with the plain old PAN and expiry date, which we &lt;U&gt;do not need&lt;/U&gt; as its encoded in the token.&lt;/P&gt;&lt;P&gt;ee. Save it&lt;/P&gt;&lt;P&gt;ff. run it&amp;nbsp; &amp;nbsp;(i.e. php testPay.php)&lt;/P&gt;&lt;P&gt;gg.Celebrate&lt;/P&gt;&lt;P&gt;hh. Take a deep breath and take a long run up to do similarly for Apple Pay.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sun, 24 Mar 2024 12:55:27 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/cybersource-APIs/SOAP-and-Fluid-Token-vs-mandatory-CC-PAN-fields/m-p/89072#M1466</guid>
      <dc:creator>mr_al</dc:creator>
      <dc:date>2024-03-24T12:55:27Z</dc:date>
    </item>
  </channel>
</rss>

