<?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 Token validation failed Visa X-pay in cybersource APIs</title>
    <link>https://community.developer.cybersource.com/t5/cybersource-APIs/Token-validation-failed-Visa-X-pay/m-p/84200#M397</link>
    <description>&lt;P&gt;I need to tweak an API&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys?apikey=" target="_blank" rel="nofollow noopener noreferrer"&gt;https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys?apikey=&lt;/A&gt;&amp;nbsp;&lt;A href="https://e-chats.com/omegle" target="_blank" rel="noopener"&gt;/echat&lt;/A&gt;&lt;A href="https://chatspin.download" target="_blank" rel="noopener"&gt;spin&lt;/A&gt; &lt;A href="https://echat.date" target="_blank" rel="noopener"&gt;/echat&lt;/A&gt;&lt;A href="https://chatrandom.download" target="_blank" rel="noopener"&gt;random&lt;/A&gt; {apikey} I am imitating the official document&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.visa.com/pages/working-with-visa-apis/x-pay-token#sample_code_for_api_key__shared_secret_xpaytoken" target="_blank" rel="nofollow noopener noreferrer"&gt;X-Pay Token&lt;/A&gt;,but it fail with "Token validation failed" error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;{
    &lt;SPAN class=""&gt;"responseStatus"&lt;/SPAN&gt;: {
        &lt;SPAN class=""&gt;"status"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;401&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"code"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"9159"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"severity"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"ERROR"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"message"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"Token validation failed"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"info"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;""&lt;/SPAN&gt;
    }
}&lt;/PRE&gt;&lt;P&gt;Below is my x-pay-token generation code.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.math.BigInteger;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; javax.crypto.Mac;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; javax.crypto.spec.SecretKeySpec;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.nio.charset.StandardCharsets;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.security.SignatureException;

&lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;class&lt;/SPAN&gt; &lt;SPAN class=""&gt;T&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;resoucePath&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"payments/flex/v1/keys"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;queryString&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"apikey=6DC0NMXO53QQFE6NFOLE213HXA-pvG6xE-1NtuCd5oOQr-O-s"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;requestBody&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"{encryptionType:RsaOaep256}"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;sharedSecret&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"gAynzAGf89+V}3{Q4Jx5cp-/R@Y#PEv#1XvxnjQC"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;main&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String[] args)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        System.out.println(T.generateXpaytoken(resoucePath, queryString, requestBody, sharedSecret));
    }

    &lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;generateXpaytoken&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String resourcePath, String queryString, String requestBody, String sharedSecret)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;timestamp&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; timeStamp();
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;beforeHash&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; timestamp + resourcePath + queryString + requestBody;
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;hash&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; hmacSha256Digest(beforeHash, sharedSecret);
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;token&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"xv2:"&lt;/SPAN&gt; + timestamp + &lt;SPAN class=""&gt;":"&lt;/SPAN&gt; + hash;
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; token;
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;timeStamp&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt; {
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; String.valueOf(System.currentTimeMillis() / &lt;SPAN class=""&gt;1000L&lt;/SPAN&gt;);
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;hmacSha256Digest&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String data, String sharedSecret)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; getDigest(&lt;SPAN class=""&gt;"HmacSHA256"&lt;/SPAN&gt;, sharedSecret, data, &lt;SPAN class=""&gt;true&lt;/SPAN&gt;);
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;getDigest&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String algorithm, String sharedSecret, String data, &lt;SPAN class=""&gt;boolean&lt;/SPAN&gt; toLower)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;try&lt;/SPAN&gt; {
            &lt;SPAN class=""&gt;Mac&lt;/SPAN&gt; &lt;SPAN class=""&gt;sha256HMAC&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; Mac.getInstance(algorithm);
            &lt;SPAN class=""&gt;SecretKeySpec&lt;/SPAN&gt; &lt;SPAN class=""&gt;secretKey&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;SecretKeySpec&lt;/SPAN&gt;(sharedSecret.getBytes(StandardCharsets.UTF_8), algorithm);
            sha256HMAC.init(secretKey);
            &lt;SPAN class=""&gt;byte&lt;/SPAN&gt;[] hashByte = sha256HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
            &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;hashString&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; toHex(hashByte);
            &lt;SPAN class=""&gt;return&lt;/SPAN&gt; toLower ? hashString.toLowerCase() : hashString;
        } &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (Exception e) {
            &lt;SPAN class=""&gt;throw&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;SignatureException&lt;/SPAN&gt;(e);
        }
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;toHex&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;SPAN class=""&gt;byte&lt;/SPAN&gt;[] bytes)&lt;/SPAN&gt; {
        &lt;SPAN class=""&gt;BigInteger&lt;/SPAN&gt; &lt;SPAN class=""&gt;bi&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;BigInteger&lt;/SPAN&gt;(&lt;SPAN class=""&gt;1&lt;/SPAN&gt;, bytes);
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; String.format(&lt;SPAN class=""&gt;"%0"&lt;/SPAN&gt; + (bytes.length &amp;lt;&amp;lt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;) + &lt;SPAN class=""&gt;"X"&lt;/SPAN&gt;, bi);
    }
}&lt;/PRE&gt;&lt;P&gt;somebody can help me please?&lt;/P&gt;</description>
    <pubDate>Tue, 20 Sep 2022 04:59:33 GMT</pubDate>
    <dc:creator>SohamMaoor</dc:creator>
    <dc:date>2022-09-20T04:59:33Z</dc:date>
    <item>
      <title>Token validation failed Visa X-pay</title>
      <link>https://community.developer.cybersource.com/t5/cybersource-APIs/Token-validation-failed-Visa-X-pay/m-p/84200#M397</link>
      <description>&lt;P&gt;I need to tweak an API&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys?apikey=" target="_blank" rel="nofollow noopener noreferrer"&gt;https://sandbox.api.visa.com/cybersource/payments/flex/v1/keys?apikey=&lt;/A&gt;&amp;nbsp;&lt;A href="https://e-chats.com/omegle" target="_blank" rel="noopener"&gt;/echat&lt;/A&gt;&lt;A href="https://chatspin.download" target="_blank" rel="noopener"&gt;spin&lt;/A&gt; &lt;A href="https://echat.date" target="_blank" rel="noopener"&gt;/echat&lt;/A&gt;&lt;A href="https://chatrandom.download" target="_blank" rel="noopener"&gt;random&lt;/A&gt; {apikey} I am imitating the official document&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://developer.visa.com/pages/working-with-visa-apis/x-pay-token#sample_code_for_api_key__shared_secret_xpaytoken" target="_blank" rel="nofollow noopener noreferrer"&gt;X-Pay Token&lt;/A&gt;,but it fail with "Token validation failed" error.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;{
    &lt;SPAN class=""&gt;"responseStatus"&lt;/SPAN&gt;: {
        &lt;SPAN class=""&gt;"status"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;401&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"code"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"9159"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"severity"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"ERROR"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"message"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"Token validation failed"&lt;/SPAN&gt;,
        &lt;SPAN class=""&gt;"info"&lt;/SPAN&gt;: &lt;SPAN class=""&gt;""&lt;/SPAN&gt;
    }
}&lt;/PRE&gt;&lt;P&gt;Below is my x-pay-token generation code.&lt;/P&gt;&lt;PRE&gt;&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.math.BigInteger;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; javax.crypto.Mac;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; javax.crypto.spec.SecretKeySpec;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.nio.charset.StandardCharsets;
&lt;SPAN class=""&gt;import&lt;/SPAN&gt; java.security.SignatureException;

&lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;class&lt;/SPAN&gt; &lt;SPAN class=""&gt;T&lt;/SPAN&gt; {
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;resoucePath&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"payments/flex/v1/keys"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;queryString&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"apikey=6DC0NMXO53QQFE6NFOLE213HXA-pvG6xE-1NtuCd5oOQr-O-s"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;requestBody&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"{encryptionType:RsaOaep256}"&lt;/SPAN&gt;;
    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;sharedSecret&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"gAynzAGf89+V}3{Q4Jx5cp-/R@Y#PEv#1XvxnjQC"&lt;/SPAN&gt;;

    &lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; &lt;SPAN class=""&gt;void&lt;/SPAN&gt; &lt;SPAN class=""&gt;main&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String[] args)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        System.out.println(T.generateXpaytoken(resoucePath, queryString, requestBody, sharedSecret));
    }

    &lt;SPAN class=""&gt;public&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;generateXpaytoken&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String resourcePath, String queryString, String requestBody, String sharedSecret)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;timestamp&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; timeStamp();
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;beforeHash&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; timestamp + resourcePath + queryString + requestBody;
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;hash&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; hmacSha256Digest(beforeHash, sharedSecret);
        &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;token&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;"xv2:"&lt;/SPAN&gt; + timestamp + &lt;SPAN class=""&gt;":"&lt;/SPAN&gt; + hash;
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; token;
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;timeStamp&lt;/SPAN&gt;&lt;SPAN class=""&gt;()&lt;/SPAN&gt; {
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; String.valueOf(System.currentTimeMillis() / &lt;SPAN class=""&gt;1000L&lt;/SPAN&gt;);
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;hmacSha256Digest&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String data, String sharedSecret)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; getDigest(&lt;SPAN class=""&gt;"HmacSHA256"&lt;/SPAN&gt;, sharedSecret, data, &lt;SPAN class=""&gt;true&lt;/SPAN&gt;);
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;getDigest&lt;/SPAN&gt;&lt;SPAN class=""&gt;(String algorithm, String sharedSecret, String data, &lt;SPAN class=""&gt;boolean&lt;/SPAN&gt; toLower)&lt;/SPAN&gt; &lt;SPAN class=""&gt;throws&lt;/SPAN&gt; SignatureException {
        &lt;SPAN class=""&gt;try&lt;/SPAN&gt; {
            &lt;SPAN class=""&gt;Mac&lt;/SPAN&gt; &lt;SPAN class=""&gt;sha256HMAC&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; Mac.getInstance(algorithm);
            &lt;SPAN class=""&gt;SecretKeySpec&lt;/SPAN&gt; &lt;SPAN class=""&gt;secretKey&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;SecretKeySpec&lt;/SPAN&gt;(sharedSecret.getBytes(StandardCharsets.UTF_8), algorithm);
            sha256HMAC.init(secretKey);
            &lt;SPAN class=""&gt;byte&lt;/SPAN&gt;[] hashByte = sha256HMAC.doFinal(data.getBytes(StandardCharsets.UTF_8));
            &lt;SPAN class=""&gt;String&lt;/SPAN&gt; &lt;SPAN class=""&gt;hashString&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; toHex(hashByte);
            &lt;SPAN class=""&gt;return&lt;/SPAN&gt; toLower ? hashString.toLowerCase() : hashString;
        } &lt;SPAN class=""&gt;catch&lt;/SPAN&gt; (Exception e) {
            &lt;SPAN class=""&gt;throw&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;SignatureException&lt;/SPAN&gt;(e);
        }
    }

    &lt;SPAN class=""&gt;private&lt;/SPAN&gt; &lt;SPAN class=""&gt;static&lt;/SPAN&gt; String &lt;SPAN class=""&gt;toHex&lt;/SPAN&gt;&lt;SPAN class=""&gt;(&lt;SPAN class=""&gt;byte&lt;/SPAN&gt;[] bytes)&lt;/SPAN&gt; {
        &lt;SPAN class=""&gt;BigInteger&lt;/SPAN&gt; &lt;SPAN class=""&gt;bi&lt;/SPAN&gt; &lt;SPAN class=""&gt;=&lt;/SPAN&gt; &lt;SPAN class=""&gt;new&lt;/SPAN&gt; &lt;SPAN class=""&gt;BigInteger&lt;/SPAN&gt;(&lt;SPAN class=""&gt;1&lt;/SPAN&gt;, bytes);
        &lt;SPAN class=""&gt;return&lt;/SPAN&gt; String.format(&lt;SPAN class=""&gt;"%0"&lt;/SPAN&gt; + (bytes.length &amp;lt;&amp;lt; &lt;SPAN class=""&gt;1&lt;/SPAN&gt;) + &lt;SPAN class=""&gt;"X"&lt;/SPAN&gt;, bi);
    }
}&lt;/PRE&gt;&lt;P&gt;somebody can help me please?&lt;/P&gt;</description>
      <pubDate>Tue, 20 Sep 2022 04:59:33 GMT</pubDate>
      <guid>https://community.developer.cybersource.com/t5/cybersource-APIs/Token-validation-failed-Visa-X-pay/m-p/84200#M397</guid>
      <dc:creator>SohamMaoor</dc:creator>
      <dc:date>2022-09-20T04:59:33Z</dc:date>
    </item>
  </channel>
</rss>

