ProductTransfer

Transfer Init With Temporary H5

URL

domain + /order/thirdFacade/transfer/initWithTemporaryH5

REQUEST

PARAMETER TYPE REQUIRED MAX LENGTH DESCRIPTION EXAMPLE VALUE
merchantOrderNumber String true 64 The merchant order number you send,ensure unique in your merchant, max length is 64 04ae304b5a2f4da2bf21190f0cf367f7
merchantUserReference String true 64 TENN account number (The TENN account of the transfer beneficiary.) 2389656826
amount Long true 64 The transfer amount (Kobo) 20000
merchantUserPhone String true 11 Merchant user phone number 51232132112
returnUrl String false 1024 Return URL https://xxx.com/return
failTransactionReturnUrl String false 1024 Return URL https://xxx.com/return

RESPONSE

PARAMETER TYPE DESCRIPTION
id String TENN transfer id
merchantOrderNumber String merchant order number
url String The url of tranfer page.

Implementation method

SDK

TransferBean transferBean = new TransferBean(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";
  }
});
MerchantTemporaryTransferInitParam param = new MerchantTemporaryTransferInitParam();
param.setAmount(20600L);
param.setMerchantUserReference("asds712321321gg12321j");
param.setMerchantUserPhone("51232132112");
param.setMerchantOrderNumber("04ae304b5a2f4da2bf21190f0cf367f7");
param.setReturnUrl("https://xxx.com/return");
MerchantTransferComplexModel merchantTransferComplexModel = transferBean.initWithTemporaryH5(param);
System.out.println(JacksonUtil.toJsonString(init));

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/transfer/initWithTemporaryH5";
    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("merchantOrderNumber", "test-20241129-01");
    paramMap.put("merchantUserReference","a1asad84qwe1010qwe515");
    paramMap.put("merchantUserPhone","1841010515");
    paramMap.put("amount","30000");
  	paramMap.put("returnUrl","https://xxx.com/return");
    return paramMap;
}