You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Overview


This guide covers the process for User Creation using the Postman for Chrome tool. There are add-ons available for other browsers, but this guide will show examples using Postman. 

Use this guide to troubleshoot network connectivity and password / credential issues.
 

Prerequisites

  1. URL (will be provided to you)
  2. Username
  3. Password 
  4. Sample Setup Request file (see sample at the end of this article)
  5. API testing app / browser add-on: 


Step-by-step guide

  1. Open Postman.
  2. Enter the URL in the URL request box. 
  3. Set the request type to 'POST'. 

  4. Paste the sample Punchout Setup Request XML into the 'Body' dialogue box as raw data. You can find the code at the end of this article.

  5. Replace the #USERNAME# with your username.
  6. Replace the #PASSWORD# with your password.
  7. Click 'Send' (top right of browser window). 
  8. If the request is successful, you will get a '200 OK' response code in the response dialogue box.

  9. If this is the case, you can continue on testing within your ERP system.
  10. If you get a blank response dialogue box (even if the status returns '200 OK'), check that the URL, your username, and password are all correct.
  11. If you still get a blank response, contact your supplier for further assistance. 



Sample


You need to replace the clientId and clientSecret values below in the getToken() function with the values provided by Professional Services.

This is not meant to be used as is, but is just an example including how you might cache the token and retry on token expiry etc.


function clearToken() {
    sessionStorage.removeItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b');
    sessionStorage.removeItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b');
}

function getToken() {
    // Use Cached authorization token information if available
    //

    var type = sessionStorage.getItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b');
    var token = sessionStorage.getItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b');

    var result = $.Deferred();

    if (type != null && token != null) {
        result.resolve({
            type: type,
            token: token
        });

        return result.promise();
    }

// TODO replace these values with your clientId and client secret values
    var clientId = '<replace>';
    var clientSecret = '<replace>';

    var auth = btoa(clientId + ":" + clientSecret);

    // Get and Cache new authorization token.
    //

    $.ajax({
        url: 'https://justinw-office.commercevision.com.au/api/token',
        method: 'post',
        headers: {'Authorization': 'Basic ' + auth},
        data: { 'grant_type': 'client_credentials' }
    }).then(function(response) {
        type = response.token_type;
        token = response.access_token;

        sessionStorage.setItem('api_type_ebf530f9-083c-43a1-bf93-cd47a853495b', type);
        sessionStorage.setItem('api_token_ebf530f9-083c-43a1-bf93-cd47a853495b', token);

        result.resolve({
            type: type,
            token: token
        });
    });

    return result.promise();
}

function createUser(user) {
    function createOptions(tokenInfo) {
        return {
            url: 'https://justinw-office.commercevision.com.au/api/User',
            method: 'post',
            headers: { 'Authorization': tokenInfo.type + ' ' + tokenInfo.token },
            contentType: 'application/json',
            data: JSON.stringify(user)
        };
    }

    var prom = $.Deferred();

    // Get token (cached or retrieve) and make call. On failure due to token having expired, retrieve
    // a new token and retry.
    //

    getToken().then(function(token) {
        $.ajax(createOptions(token))
            .done(function(response) {
                prom.resolve(response);
            })
            .fail(function(response) {
                if (response.status == 401) {
                    clearToken();

                    getToken().then(function(token) {
                        $.ajax(createOptions(token))
                            .done(function(response) {
                                prom.resolve(response);
                            })});
                    return;
                }

                console.error(response);
            });
    });

    return prom.promise();
}

createUser({
    "EmailAddress" : "user-does-not-exist",
    "FirstName" : "user-name",
    "Surname" : "user-surname",
    "PhoneNumber" : "0419 000 000",
    "NotifyEmailAddress" : "someone@somedomain.com",
    "CustomerCodes" : [
        "046008",
        "046018"
    ],
    "SendWelcomeEmail": false
}).done(function(response) {
// TODO do something with the response here
    console.log(response);
});


Related help


  • No labels