跨境汇款-微信主扫下单-(API接口)

接口描述

商户通过本接口将订单信息上送至合利宝-跨境系统,获取到跳转url,直接在浏览器请求此地址,进入支付页面。
系统展示微信二维码,用户使用微信APP扫码完成支付。
支付完成后,系统自动完成购汇,付汇业务

流程图

基本信息

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

请求参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) WXPAYSCAN
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
订单金额 orderAmount Number(10.2) 0.01 单位:元
商品名称 goodsName String(150) Iphone7
下单ip orderIp String(15) 1.1.1.1
有效期 period String(6) 1 默认为7
有效期单位 periodUnit String(10) HOUR YEAR/MONTH/DAY/HOUR/MINUTE/SECOND;默认为DAY
服务器回调地址 serverCallbackUrl String(300) http://www.456.com
购汇币种 purchaseCurrency String(15) USD/CAD 详细信息参见附录
购汇金额 purchaseAmount Number(10.2) 0.01
购汇用途 purchaseCategory String(24) STUDYABROAD 留学 其他详细参见附录
国家/地区代码 receiptionCountry String(20) ALB 阿尔巴尼亚Albania 详细参见附录
银行名称 bankName String(250)
路由编码 routeNo String(20) SWIFT\ABN\IBAN 三选一
收款人开户银行代码 payeeBankCode String(20) 参考 路由编码对应银行编码
收款人开户银行地址 payeeBankAdd String(250)
收款人姓名 payeeName String(250)
收款人账号 payeeAccountNo String(50)
收款人地址 payeeAddress String(250)
收款人邮编 postcode String(20)
付汇附言 remitMessage String(250) 仅支持字母
购付汇服务器回调地址 purchaseServerCallbackUrl String(300) http://www.456.com
页面回调地址 pageCallbackUrl String(300) http://www.456.com
保税商品标识 protectFlag String(300)
付款人姓名 payerName String(64) 张三
付款人身份证号 payerIdCardNo String(20) 110101200001012999
付款人卡号 payerAccountNo String(20) 110101200001012999
付款人手机号 payerMobile String(20) 13701234567
报备号 reportId String(20) 123123 产品开通后,此值会发送到商户侧,商户可选择性上送

响应参数

名称 参数 类型 必填 示例值 说明
产品编码 productCode String(20) WXPAYSCAN
商户订单号 orderNo String(64) p_20170302185347
商户编号 merchantNo String(10) Me10000002 合利宝-跨境系统分配的商户编号
平台流水号 serialNumber String(32) 201702241400010002 合利宝-跨境系统生成的唯一交易流水号
当前牌价加点 orderPrice Number(10.2)
响应码 errorCode String(10) 0000 0000 代表请求成功
响应信息 errorMessage String(200) 成功 响应信息 错误信息
响应时间 current String(20) 2018-04-01 12:00:00 格式yyyy-MM-dd HH:mm:ss
用户信息录入URL地址 redirectUrl String 直接在浏览器打开此地址,引导用户录入个人信心
订单状态 orderStatus String INIT:初始化
WAITING:待支付
SUCCESS:用户支付成功,等待购付汇处理(系统自动发起)
PURCHASING:购汇处理中
REMITTING:购汇完成,付汇处理中
REMITTED:付汇处理完成
FAILED:失败

代码示例


     @Test void gatewayApiWxScanPay() {
        RemoteService remoteService = new RemoteServiceImpl();
        GatewayApiScanPayRequestForm form = setScanPayRequestForm(ProductEnumType.WXPAYSCAN.name());
        HeliRequest param = HandleDataUtils.encodeAndSign(form,form.getProductCode(),form.getMerchantNo());
        HeliRequest heliRequest = remoteService.postRemoteInvoke(LoadPropertiesUtils.getProperty("gatewayApiScanPurchaseUrl"), JSONObject.toJSONString(param), HeliRequest.class);
        GatewayPayResponseForm appScanPayResponseForm = HandleDataUtils.decode(heliRequest, GatewayPayResponseForm.class,heliRequest.getProductCode(),heliRequest.getMerchantNo());
        logger.info("#####解密后的内容为{}", appScanPayResponseForm);
    }

    private GatewayApiScanPayRequestForm setScanPayRequestForm(String productCode) {
        GatewayApiScanPayRequestForm request = new GatewayApiScanPayRequestForm();

        //必填项:涉及到的 账户名和地址,备注的,最好都不要有中文。 强制要求英文
        request.setPurchaseCurrency("USD");
        //外币金额需要大于50
        request.setPurchaseAmount(new BigDecimal("100"));
        request.setPurchaseCategory("STUDYABROAD");
        request.setReceiptionCountry("USA");
        request.setBankName("OLDENBURGISCHE LANDESBANK AG");
        request.setRouteNo("SWIFT");
        request.setPayeeBankCode("DE018774");
        request.setPayeeBankAdd("usa xx 00 bank");
        request.setPayeeName("corn");
        request.setPayeeAccountNo("124fhk");
        request.setPayeeAddress("usa xx 00 bank");
        request.setOrderAmount(new BigDecimal("100"));
        request.setMerchantNo(LoadPropertiesUtils.getProperty("merchantNo"));
        request.setProductCode(productCode);
        request.setOrderNo(productCode + System.currentTimeMillis());

        //选填项:涉及到的 账户名和地址,备注的,最好都不要有中文。 强制要求英文
        request.setRemitMessage("Go to a foreign school to see the beauty");
        request.setPurchaseServerCallbackUrl("http://wwww.baidu.com/a/b");
        request.setProtectFlag("");
        request.setPeriod("");
        request.setPeriodUnit("");
        request.setServerCallbackUrl("");
        request.setGoodsName("BMWCar");
        request.setOrderIp("127.0.0.1");

        request.setPayerName("张三");
        request.setPayerIdCardNo("123213131232213");
        request.setPayerAccountNo("12323213123213123");
        request.setPayerMobile("188012345678");
        return request;
    }


                                

                                

                                

错误码

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