境内收单-新无卡下单

接口描述

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

绑卡申请

基本信息

测试请求地址 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;
    }
                                

                                

                                

错误码

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