境内收单-新无卡下单

接口描述

先绑卡,再交易. 绑卡需要使用短验接口.对于开通快捷短信二次验证功能的商户,发起快捷后需要调用"快捷交易短信确认"接口进行二次确认

绑卡申请

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/member/toCreateBindCord
请求地址 https://cbptrx.helipay.com/cbtrx/rest/member/toCreateBindCord
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品类型 productCode String(20) QUICKPAY 固定值
绑卡订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
用户姓名 memberName String(10) 张三
用户身份证号 memberID String(18) 110101200001012999
用户手机号 memberMobile String(20) 13701234567
卡号 memberCardNo String(19) 1234567890
用户编号 memberNo String ID9527
银行代码 bankCode String(20) ICBC/CCB 银行编码,详细信息参见附录
签约类型 protocolType String(10) protocol 上送protocol走新通道 且必须填写短验
是否同步下发短信 sendValidateCode String(10) TRUE TRUE:同步下发,其他不同步下发
信用卡有效期年份 expireYear String(10) 17 信用卡有效期年
信用卡有效期月份 expireMonth String(10) 04 信用卡有效期月
信用卡安全码 cvv2 String(10) 000 信用卡安全码
分账请求参数明细 shareList List(100) 如下说明 若商户开通分账产品,且本次交易需要分账,则此参数必填

分账请求参数明细

名称 参数 类型 必填 示例值 说明
排序参数 index Integer 1 用于交易加密参数排序,不能重复
分账账户编号 shareMerchantNo String(10) Me10000002
分账金额 shareAmount Number(10.2) 0.01 单位:元
所有明细分账金额相加必须等于交易金额
主账户分账金额必须大于交易手续费

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
绑卡订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息

代码示例

    //绑卡预下单
    @RequestMapping(value = "/newBindMemberCard")
    public ModelAndView bindMemberCard(@ModelAttribute @Valid NewMemberCardBindRequestForm memberCardBindRequestForm, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("createQuickOreder"), JSONObject.toJSONString(encodeAndSign(memberCardBindRequestForm, memberCardBindRequestForm.getProductCode(), memberCardBindRequestForm.getMerchantNo())), HeliRequest.class);
        NewMemberCardDoBindResponseForm memberCardBindResponseForm = decode(heliRequest, NewMemberCardDoBindResponseForm.class, memberCardBindRequestForm.getProductCode(), memberCardBindRequestForm.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(memberCardBindResponseForm.getErrorCode())) {
            throw new CommonSystemException(memberCardBindResponseForm.getErrorCode(), memberCardBindResponseForm.getErrorMessage());
        }

        if (memberCardBindRequestForm.getSendValidateCode().equals("FALSE")){
            mav.setViewName("bind/newBindMemberCardSendMsg");
            mav.addObject("responseForm", memberCardBindResponseForm);
            return mav;
        }
        mav.setViewName("bind/todoNewBindMemberCard");
        mav.addObject("responseForm", memberCardBindResponseForm);
        return mav;
    }

                                

                                

                                

绑卡提交

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/member/toConfrimBindCard
请求地址 https://cbptrx.helipay.com/cbtrx/rest/member/toConfrimBindCard
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
原绑卡申请订单号 orderNo String(64) p_20170302185347 原绑卡申请订单号
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
短信验证码 smsCode String(20) 952700 绑卡申请接口调用成功后用户手机收到的短信验证码

响应参数

名称 参数 类型 必填 示例值 说明
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息
响应时间 current String(20) 2018-04-01 12:00:00 格式yyyy-MM-dd HH:mm:ss
绑卡ID bindId String id_9527_bindId 绑卡成功跨境系统生成的用户绑卡ID

代码示例

     //短验后进行绑卡
    @RequestMapping(value = "/doConfirmBindMemberCard")
    public ModelAndView doBindMemberCard(@ModelAttribute @Valid NewMemberCardDoBindRequestForm memberCardDoBindRequestForm, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("newConfrimBindCard"), JSONObject.toJSONString(encodeAndSign(memberCardDoBindRequestForm, memberCardDoBindRequestForm.getProductCode(), memberCardDoBindRequestForm.getMerchantNo())), HeliRequest.class);
        NewMemberCardDoBindResponseForm memberCardDoBindResponseForm = decode(heliRequest, NewMemberCardDoBindResponseForm.class, memberCardDoBindRequestForm.getProductCode(), memberCardDoBindRequestForm.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(memberCardDoBindResponseForm.getErrorCode())) {
            throw new CommonSystemException(memberCardDoBindResponseForm.getErrorCode(), memberCardDoBindResponseForm.getErrorMessage());
        }
        mav.setViewName("/bind/doNewBindMemberCardResult");
        mav.addObject("responseForm", memberCardDoBindResponseForm);
        return mav;
    }

                                

                                

                                

快捷交易

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/domestic/pay/newApply
请求地址 https://cbptrx.helipay.com/cbtrx/rest/domestic/pay/newApply
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
付款人姓名 memberName String(10) 小明
身份证 memberID String(30) 个人身份证号
手机号 memberMobile String(20) 13601234567
交易额 orderAmount BigDecimal 0.01
绑卡ID bindId String id_9527_bindId 绑卡成功跨境系统生成的用户绑卡ID
商品名称 goodsName String(400) 玫瑰花
商品数量 goodsQuantity Integer 1
用户注册账号 userAccount String 18900000001 用户注册账号:手机或邮箱
应用类型 appType String IOS IOS、AND(安卓客户端)、H5、WX、OTHER
应用名 appName String 某宝 应用市场名称、网站名称、微信公众号或小程序或网站名
业务场景 dealSceneType String QUICKPAY 场景类别枚举值详见附录:行业及其场景类型列表
终端类型 terminalType String IMEI IMEI、MAC、UUID(针对 IOS 系统)、OTHER
终端标识 terminalId String 122121212121 终端唯一标识,如手机序列号
是否同步下发短信 sendValidateCode String TRUE TRUE:同步下发
交易定位地址 lbs String {"lat":"23.1290765766","log":"113.2643446427"} lat:经度 log:纬度
场景参数 dealSceneParams String 商品详情(list) 采用json串的模式传入,字段名和字段内容需彼此对应,相关字段详见附件“场景及对应参数列表
有效期单位 periodUnit String(6) hour Day:天 Hour:时 Minute:分
有效期 period String 1 过了订单有效时间的订单会被设置为取消状态不能再重新进行支付
服务器回调地址 serverCallbackUrl String(300)
下单IP orderIp String(40)
平台商户编号 platMerchantNo String(10) 如下说明 电商平台商户所属的平台商编号

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息
响应时间 current String(20) 2018-04-01 12:00:00 格式yyyy-MM-dd HH:mm:ss
订单状态 orderStatus String(20) SUCCESS/INIT 支付成功:SUCCESS,未支付:INIT,待验证:NEED_CONFIRM
订单金额 orderAmount Number(10.2) 0.01 单位:元

代码示例

    @RequestMapping(value = "/newQuickPay", method = RequestMethod.POST)
    public ModelAndView quickPay(@ModelAttribute @Valid NewQuickPayRequestForm quickPayRequestForm, BindingResult bindingResult) throws UnsupportedEncodingException {
        ModelAndView modelAndView = new ModelAndView();
        if (bindingResult.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
        }

        HeliRequest result = HandleDataUtils.encodeAndSign(quickPayRequestForm,quickPayRequestForm.getProductCode(),quickPayRequestForm.getMerchantNo());
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("newQuickURL"), JSONObject.toJSONString(result), HeliRequest.class);
        NewQuickPayOrderResponseForm newquickPayOrderResponseForm = HandleDataUtils.decode(heliRequest, NewQuickPayOrderResponseForm.class,quickPayRequestForm.getProductCode(),quickPayRequestForm.getMerchantNo());

        if (!CbDemoConstants.SUCCESS_CODE.equals(newquickPayOrderResponseForm.getErrorCode())) {
            throw new CommonSystemException(newquickPayOrderResponseForm.getErrorCode(),newquickPayOrderResponseForm.getErrorMessage());
        }
        logger.info(newquickPayOrderResponseForm.getOrderNo());


        modelAndView.addObject("responseForm", newquickPayOrderResponseForm);
        modelAndView.setViewName("newquick/newQuickPayResult");
        return modelAndView;
    }

                                

                                

                                

错误码

错误码 错误码描述 解决方案

绑卡短信验证码发送

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/member/newBindSMS
请求地址 https://cbptrx.helipay.com/cbtrx/rest/member/newBindSMS
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息

代码示例

    //绑卡短信
    @RequestMapping(value = "/newBindMemberCardToSendSMS")
    public ModelAndView bindMemberCardToSendSMS(@ModelAttribute @Valid NewMemberCardBindSMSRequestForm memberCardBindRequestForm, BindingResult result) {
        ModelAndView mav = new ModelAndView();
        if (result.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], result.getFieldError().getDefaultMessage());
        }
            //请求下发短信
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("newQuickSendMsg"), JSONObject.toJSONString(encodeAndSign(memberCardBindRequestForm, memberCardBindRequestForm.getProductCode(), memberCardBindRequestForm.getMerchantNo())), HeliRequest.class);
        NewMemberCardSendMessageResponseForm memberCardBindResponseForm = decode(heliRequest, NewMemberCardSendMessageResponseForm.class, memberCardBindRequestForm.getProductCode(), memberCardBindRequestForm.getMerchantNo());
        if (!CbDemoConstants.SUCCESS_CODE.equals(memberCardBindResponseForm.getErrorCode())) {
                throw new CommonSystemException(memberCardBindResponseForm.getErrorCode(), memberCardBindResponseForm.getErrorMessage());
        }
        mav.setViewName("bind/todoNewBindMemberCard");
        mav.addObject("responseForm", memberCardBindResponseForm);
        return mav;
    }

                                

                                

                                

错误码

错误码 错误码描述 解决方案

快捷交易短信

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/pay/applyConfirmSMS
请求地址 https://cbptrx.helipay.com/cbtrx/rest/domestic/pay/applyConfirmSMS
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息

代码示例

  @RequestMapping(value = "/newQuickPayConfirmSms", method = RequestMethod.POST)
    public ModelAndView quickPayConfirmSMS(@ModelAttribute @Valid NewQuickPayConfirmSMSRequestForm requestForm, BindingResult bindingResult) throws UnsupportedEncodingException {

        ModelAndView modelAndView = new ModelAndView();
        if (bindingResult.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
        }

        HeliRequest result = HandleDataUtils.encodeAndSign(requestForm,requestForm.getProductCode(),requestForm.getMerchantNo());
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("newQUickURLSMS"), JSONObject.toJSONString(result), HeliRequest.class);
        NewQuickPayConfirmSMSResponseForm responseForm = HandleDataUtils.decode(heliRequest, NewQuickPayConfirmSMSResponseForm.class,requestForm.getProductCode(),requestForm.getMerchantNo());

        if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())) {
            throw new CommonSystemException(responseForm.getErrorCode(),responseForm.getErrorMessage());
        }
        logger.info(responseForm.getOrderNo());


        modelAndView.addObject("responseForm", responseForm);
        modelAndView.setViewName("newquick/newReSendMsgResult");
        return modelAndView;
    }

                                

                                

                                

快捷交易确认

基本信息

测试请求地址 https://cbtrxtest.helipay.com/cbtrx/rest/pay/applyConfirm
请求地址 https://cbptrx.helipay.com/cbtrx/rest/domestic/pay/applyConfirm
提交方式 采用POST方法提交,requestbody传值 Content-Type=[application/json;charset=UTF-8]
签名算法 UTF-8字符编码 SHA256签名 AES加密

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
手机验证码 smsCode String(10) 手机接收验证码,5分钟内有效

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) QUICKPAY
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息
订单状态 orderStatus String(20) SUCCESS/INIT 支付成功:SUCCESS,未支付:INIT,待验证:NEED_CONFIRM
完成时间 current String(20) 2018-04-01 12:00:00 格式yyyy-MM-dd HH:mm:ss
订单金额 orderAmount Number(10.2) 0.01 单位:元

代码示例

 @RequestMapping(value = "/newQuickPayConfirm", method = RequestMethod.POST)
    public ModelAndView quickPayConfirm(@ModelAttribute @Valid NewQuickPayConfirmRequestForm requestForm, BindingResult bindingResult) throws UnsupportedEncodingException {
        ModelAndView modelAndView = new ModelAndView();
        if (bindingResult.hasErrors()) {
            throw new CommonSystemException(CommonSystemException.ILLEGAL_DATA_REQUEST[0], bindingResult.getFieldError().getDefaultMessage());
        }

        HeliRequest result = HandleDataUtils.encodeAndSign(requestForm,requestForm.getProductCode(),requestForm.getMerchantNo());
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("newQuickConfirm"), JSONObject.toJSONString(result), HeliRequest.class);
        NewQuickPayConfirmResponseForm responseForm = HandleDataUtils.decode(heliRequest, NewQuickPayConfirmResponseForm.class,requestForm.getProductCode(),requestForm.getMerchantNo());

        if (!CbDemoConstants.SUCCESS_CODE.equals(responseForm.getErrorCode())){
            throw new CommonSystemException(responseForm.getErrorCode(),responseForm.getErrorMessage());
        }
        logger.info(responseForm.getOrderNo());

        modelAndView.addObject("responseForm", responseForm);
        modelAndView.setViewName("newquick/newQuickPayResult");
        return modelAndView;
    }
                                

                                

                                

错误码

错误码 错误码描述 解决方案