SDK and code examples
SDK and code examples
-. NET-SDK
https://github.com/vgpay/VGPay-NET-SDK
-Python-SDK
https://github.com/vgpay/VGPay-Python-SDK
-Jave example code
// Place an order for deposit
public PayBo rechargeByTrc20Usdt(RechargeVo vo , String noticeUrl) throws Exception{
LinkedHashMap<String,Object> param = new LinkedHashMap<String, Object>(){{
put("businessId", getBusinessId()); //Merchant ID
put("outOrderNo", vo.getOrderId().toString()); //Merchant order
put("paymentUserId", vo.getUserIdEncryption()); //User id
put("coin", "TRC20_USDT"); //Order coin
put("amount", new BigDecimal(vo.getAmount().stripTrailingZeros().toPlainString())); //Order amount
put("orderType", "1"); //0 consumption 1 deposit
put("timeStamp", Instant.now().getEpochSecond()); //timeStamp
put("productName", null);
put("exData", null);
put("callBackUrl", noticeUrl); //callback address
}};
String sign = SortUtils.formatUrlParam(param, "") + "&secretKey=" + getSecretKey(); //Parameter sorting
log.info("sign: {}", sign);
final String encryptValue = MD5Util.md5Encode(sign).toLowerCase(); //Encryption
log.info("sign MD5Encrypted data : {}", encryptValue);
param.put("mac", encryptValue);
final String result = HttpHelper.postMethod(getApiUrl() + "?" + SortUtils.formatUrlParam(param, ""), null); //Request Interface
log.info("KlicklPayOrder result: {}", result);
final KlicklPayBo KlicklPayBo = JSON.parseObject(result, KlicklPayBo.class);
if (!KlicklPayBo.isSuccess()){
return new PayBo(500, KlicklPayBo.getMsg(), StringUtils.isBlank(KlicklPayBo.getOutOrderNo()) ? null : Long.valueOf(KlicklPayBo.getOutOrderNo()), KlicklPayBo.getOrderNo());
}
String paymentUrl = KlicklPayBo.getPaymentUrl();
if (StringUtils.contains(paymentUrl , "?")){
paymentUrl += "〈=en";
}else {
paymentUrl += "?lang=en";
}
return new PayBo(200, paymentUrl, StringUtils.isBlank(KlicklPayBo.getOutOrderNo()) ? null : Long.valueOf(KlicklPayBo.getOutOrderNo()), KlicklPayBo.getOrderNo());
}
// Cash withdrawal and order placement
public PayBo payOrder(final PayVo reqVo, String noticeUrl) throws Exception {
LinkedHashMap<String,Object> param = new LinkedHashMap<String, Object>(){{
put("businessId", getBusinessId());
put("outWithdrawalNo", reqVo.getOrderId().toString());
put("withdrawalUserId", MD5Util.md5Encode(StringUtils.isBlank(reqVo.getRealName())? reqVo.getAccount() : reqVo.getRealName()));
put("coin", "TRC20_USDT");
put("amount", new BigDecimal(reqVo.getAmount().stripTrailingZeros().toPlainString()));
put("address", StringUtils.replace(reqVo.getAccount()," ", ""));
put("timeStamp", Instant.now().getEpochSecond());
put("callBackUrl", noticeUrl);
}};
String sign = SortUtils.formatUrlParam(param, "") + "&secretKey=" + getSecretKey();
log.info("sign: {}", sign);
final String encryptValue = MD5Util.md5Encode(sign).toLowerCase();
log.info("sign MD5 encrypted data : {}", encryptValue);
param.put("mac", encryptValue);
final String result = HttpHelper.postMethod(getWithdrawAUrl() + "?" + SortUtils.formatUrlParam(param, ""), null);
log.info("KlicklPay Order result: {}", result);
final KlicklPayWithdrawalBo KlicklPayWithdrawalBo = JSON.parseObject(result, KlicklPayWithdrawalBo.class);
if (!KlicklPayWithdrawalBo.isSuccess()){
return new PayBo(500, KlicklPayWithdrawalBo.getMsg());
}
return new PayBo(200, KlicklPayWithdrawalBo.getMsg(), reqVo.getOrderId(), KlicklPayWithdrawalBo.getWithdrawalNo());
}
Example code for placing an order in the php larravel framework
/**
* Place an order for deposit
**/
$order_id = $this->makeOrder($card_id, $fid, $cost_money, $pay_type, Auth::user()->id, Auth::user()->ref_key);
if (!$order_id) {
return $this->fail(Lang::get('message.create_fail'));
}
$pay_url='https://api.sunpay.pro/api/v3/Payment';
$key='xxxxxxxxxx';
$data = [
'businessId'=>'xxxxxxx',
'outOrderNo'=>$order_id,
'paymentUserId'=>Auth::user()->id,
'coin'=>'TRC20_USDT',
'amount'=>$cost_money*1.12,
'orderType'=>'1',
'productName'=>'buycoin',
'exData'=>'{"action":"test"}',
'callBackUrl'=>'https://xxxxxx',
'timeStamp'=>time()
];
$signtr=self::getSignContent($data).'&secretKey='.$key;
$data['mac']=strtolower(md5($signtr));
$res=self::url_post($pay_url,$data);
//Log::info($res);
$arr=json_decode($res,true);
if($arr['isSuccess']){
return $this->success($arr['data']['paymentUrl']);
}else{
return $this->fail($arr['msg']);
}