ProductAccount

Create Dedicate Account

URL

domain + /order/thirdFacade/account/createDedicatedAccount

REQUEST

PARAMETER TYPE REQUIRED MAX LENGTH DESCRIPTION EXAMPLE VALUE
merchantUserId String true 255 Merchant user ID 18
phoneNumber String true 20 Merchant user's phone number 78901234567
idNumber String true 64 Merchant user's ID number 12345678890764333
idNumberType Integer true 2 1:bvn
2:nin
2
firstName String true 255 Merchant user's first name Test
middleName String false 255 Merchant user's middle name Test
lastName String true 255 Merchant user's last name Test

RESPONSE

PARAMETER TYPE DESCRIPTION
merchantUserId String Merchant user ID
accountNumber String Merchant user's Account number
phoneNumber String Merchant user's phone number
idNumber String Merchant user's ID number
idNumberType Integer 1:bvn
2:nin
firstName String Merchant user's first name
middleName String Merchant user's middle name
lastName String Merchant user's last name

Implementation method

SDK

// Create an instance of the AccountBean with the DeepxinPayConfig implementation
AccountBean accountBean = new AccountBean(new DeepxinPayConfig() {
    @Override
    public String getMerchantCode() {
        return "Your merchant code";
    }

    @Override
    public String getPublicKey() {
        return "Your public key";
    }

    @Override
    public String getPrivateKey() {
        return "Your private key";
    }

    @Override
    public String getServerAddress() {
        return "https://tenn.deepxin.com";
    }
});

// Create a CreateDedicatedAccountParam instance
CreateDedicatedAccountParam param = CreateDedicatedAccountParam.builder()
        .merchantUserId("11112023101909873")
        .phoneNumber("78901238901")
        .idNumber("12345678901")
        .idNumberType(1)
        .firstName("Test")
        .middleName("Test")
        .lastName("Test")
        .build();

// Make a request to obtain the URL of the payment page
R<DedicatedAccountModel> dedicatedAccountModel = accountBean.createDedicatedAccount(param);

// Get the transactionNumber from the response data
String accountNumber = dedicatedAccountModel.getData().getAccountNumber;

// Print the obtained URL
System.out.println("dedicate account number: " + accountNumber);

HTTP

public static void main(String[] args) {
    // Replace with the merchant's public key for either the testing environment or the production environment
    String merchantPublicKey = "your public key";
    // Replace with the merchant's private key for either the testing environment or the production environment
    String merchantPrivateKey = "your private key";
    // MerchantCode
    String merchantCode = "your merchant code";
    // Parameters
    Map<String, Object> paramMap = getParamMap();
    // Encrypt the parameters using the merchant's public key.
    String encryptStr = encryptWithPublicKey(paramMap, merchantPublicKey);
    // Sign the encrypted parameters using the merchant's public key.
    String sign = sign(encryptStr, merchantPublicKey);
    // Get Request parameters
    Map<String, Object> requestMap = getRequestMap(encryptStr, merchantCode, sign);
    String requestStr = JSONUtil.toJsonStr(requestMap);
    String tennServerUrl = "https://tenn.deepxin.com/order/thirdFacade/account/createDedicatedAccount";
    try {
        String result = HttpUtil.post(tennServerUrl, requestStr);
        if (!JSONUtil.isTypeJSON(result)) {
            System.out.println("Result is not a JSON type.");
            return;
        }
        JSONObject entries = JSONUtil.parseObj(result);
        String toDecryptStr = entries.getStr("data");
        String responseSign = entries.getStr("sign");
        if (SUCCESS_CODE == entries.getInt("code")) {
            boolean verifySign = verify(responseSign, toDecryptStr, merchantPublicKey);
            if (verifySign) {
                String decryptStr = decryptWithPrivateKey(toDecryptStr, merchantPrivateKey);
                System.out.println(decryptStr);
            } else {
                System.out.println("Signature verification failed.");
            }
        }else{
            System.out.println(result);
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}

public static Map<String, Object> getParamMap() {
    Map<String, Object> paramMap = new HashMap<>();
    paramMap.put("merchantUserId", "11112023101909873");
    paramMap.put("phoneNumber", "78901238901");
    paramMap.put("idNumber", "12345678901");
    paramMap.put("idNumberType", 1);
    paramMap.put("firstName", "Test");
    paramMap.put("middleName", "Test");
    paramMap.put("lastName", "Test");
    return paramMap;
}