CyberSource / cybersource-rest-samples-java

Java sample code for the CyberSource REST API
28 stars 77 forks source link

401 Unauthorized error with correct credentials. #63

Open mehdizj2000 opened 2 years ago

mehdizj2000 commented 2 years ago

I followed the documentation and set up my API credentials as below:

public static Properties getMyMerchantDetails() {
        Properties props = new Properties();

        // HTTP_Signature = http_signature and JWT = jwt
        props.setProperty("authenticationType", "http_signature");
        props.setProperty("merchantID", "my_web_au");
        props.setProperty("runEnvironment", "apitest.cybersource.com");

        props.setProperty("merchantKeyId", "my_merchant_id");
        props.setProperty("merchantsecretKey", "my_sercret_key");
        props.setProperty("useMetaKey", "false");
        props.setProperty("enableClientCert", "false");

        return props;

    }

it gives me 401 unauthorized error: Response{protocol=http/1.1, code=401, message=Unauthorized, url=https://apitest.cybersource.com/pts/v2/payments}

public static Properties getMerchantDetails() {
        Properties props = new Properties();

        // HTTP_Signature = http_signature and JWT = jwt
        props.setProperty("authenticationType", "http_signature");
        props.setProperty("merchantID", "testrest");
        props.setProperty("runEnvironment", "apitest.cybersource.com");
        props.setProperty("requestJsonPath", "src/main/resources/request.json");

        props.setProperty("useMetaKey", "false");

        // HTTP Parameters
        props.setProperty("merchantKeyId", "ggggggggggg");
        props.setProperty("merchantsecretKey", "gggggggggg");
        props.setProperty("enableClientCert", "false");

        return props;

    }

The above gives which is me 201 proper response.

I am sure my credentials are correctly created. Is there anything else I should add or modify to get past authorization?

rajvpate commented 1 year ago

@mehdizj2000 :

Looking at the example code you have pasted, please ensure that you use your "merchantId" from Sandbox environment in this code line below props.setProperty("merchantID", "my_web_au"); and provide the "keyId" generated using Enterprise Business Center login for your merchant in the code line below:

    props.setProperty("**merchantKeyId**", "**my_merchant_id**");

I am unable to look up your merchantID "my_web_au" in the Business Center.