接入流程
使用邮箱即可快速注册,无需付费~ 立即注册
1、根据邮件提示完善商户信息,对接业务地址、联系方式、以及结算收款信息
2、联系客服、沟通业务需求、开通账号。
3、客服根据您的业务需求安排专业技术人员协助API接入。
我们提供专业的技术服务协助接入,您也可以参考开发文档自行接入。主要的步骤是在您的项目里调用创建订单的API,以及配置好相对应的回调方法。当然,我们也提供了一些DEMO代码供您参考,无论您的项目是JAVA、PHP还是其他语言,都支持快速接入~
1、api 接口:单独固定支付方式接入。
2、收银台接口:所有支付方式统一接入、由用户自行选择付款方式。
在接入过程中有任何问题欢迎联系我们,我们会为您提供专业的接入技术服务~
注意事项:
商户后台基本资料填写的网站地址必须实际对接的业务地址对应、商户一旦审核通过不允许审核地址以外的网站地址接入、特殊情况请联系客服
请求地址:http://paytest.ccsttoo.com/apisubmit
请求方式:POST
请求类型:application/x-www-form-urlencoded
参数说明:
参数 类型长度 是否可空 是否签名 参数说明 version varchar(5) 否 是 【版本号】默认1.0 customerid int(8) 否 是 【商户编号】商户后台获取 sdorderno varchar(20) 否 是 【商户订单号】必须确保唯一性 total_fee decimal(10,2) 否 是 【订单金额】单位元。保留两位小数,不足以0占位。且不能出现千位分隔符 paytype varchar(10) API接入不可为空 否 【支付编号】详见附录1,收银台接入时如果该参数为空、则由用户选择支付方式,否则为固定支付方式 bankcode varchar(10) 网银直连不可为空,其他支付方式可为空 否 【银行编号】详见附录2 access_type varchar(8) 否 是 【接入方式】API接入:API 收银台接入:CHECKOUT notifyurl varchar(50) 否 是 【异步通知URL】不能带有任何参数,且必须是可正常访问的url returnurl varchar(50) 否 是 【同步通知URL】不能带有任何参数,且必须是可正常访问的url clientip varchar(30) 否 是 【clientip】终端ip,建议获取用户ip remark varchar(50) 否 否 【订单备注】建议传递商品名称! is_jump bool 是 否 【收银台自动跳转】收银台接入时,该字段如果为 true 请求成功直接跳转失败返回错误消息、为 false 则返回参数有由客户端自行判断跳转。为空时不传递、默认值为 true。表单请求可忽略 sign varchar(32) 否 否 【md5签名】参照下方md5签名说明
md5签名方法说明:
1、除参数说明中注明不需要参与签名字段外,所有参数按照字段名的ascii码从小到大排序后使用QueryString 的格式 (即 key1=value1&key2=value2…)再拼接上下发的key拼接而成,空值不传递,不参与签名组串。最后对于签名字符串进行MD5加密
2、签名原始串中,字段名和字段值都采用原始值,不进行URLEncode。
3、返回的应答或通知消息可能会由于升级增加参数,请验证应答签名时注意允许这种情况。
例:某渠道key=123qwe,某接口有4个参数都参与签名,ac=xxx,ab=xxx,c=xxx,b=xxx,按照ascii升序拼接后为:
ab=xxx&ac=xxx&b=xxx&c=xxx再拼接key得到签名串: ab=xxx&ac=xxx&b=xxx&c=xxx&123qwe
最后对上述字符串进行MD5运算后得到签名sign
<?php $userkey = '商户秘钥'; $paydata = [ 'version' => '1.0', 'customerid' => '1000', 'total_fee' => '100.00', 'sdorderno' => 'test00000001', 'notifyurl' => 'http://xxx.xxx.com/notify.php', 'returnurl' => 'http://xxx.xxx.com/return.php', 'clientip' => $_SERVER['REMOTE_ADDR'], 'access_type'=> 'API', ]; $signStr = sign_str($orders); $paydata['sign'] = md5($signStr. '&' . $userkey); $paydata['paytype'] = 'alipay'; $paydata['remark'] = '测试商品'; $paydata['bankcode'] = ''; // ……post请求接口 /** * 拼接签名字符串 * @param array $params * @return string */ function sign_str($params) { ksort($params); $signStr = ""; $i = 0; foreach ($params as $k => $v) { if (!empty(trim($v))) { if ($i == 0) $signStr .= "$k" . "=" . "$v"; $signStr .= "&" . "$k" . "=" . "$v"; $i++; } unset ($k, $v); } return $signStr; }
返回参数说明: 返回参数建议做好 sign 验签。接入方式为收银台,并且is_jump为true 时。直接跳转没有以下参数返回
请求类型:application/x-www-form-urlencoded
参数 是否必反 是否签名 参数说明 status 必反 是 成功返回 OK 该状态仅代表接口调用状态不代表成功状态,成功状态需同时判断 status 与 msg msg 必反 是 成功返回 SUCCESS 失败返回错误说明 url 必反 是 API接入时可直接跳转,通常用于h5支付拉起或者内部浏览器直接拉起支付 img API接入必反 是 注意判断字符串长度大于100为base64格式二维码图片可直接作用于src属性、判断字符串长度小于100视为url需自行生成二维码 total_fee 必反 是 订单金额 orderid 必反 是 平台订单号 sdorderno 必反 是 商户订单号 customerid 必反 是 商户号 sign 必反 否 【md5签名】同接口请求签名
http://paytest.ccsttoo.com/apiorderquery
请求方式:POST/GET 请求类型:application/x-www-form-urlencoded
参数说明:
参数 类型长度 是否可空 是否签名 参数说明 customerid int(8) 否 是 【商户编号】商户后台获取 sdorderno varchar(20) 否 是 【商户订单号】要查询的商户订单号 reqtime varchar(14) 否 是 【当前时间戳】格式:yyyymmddhhmmss sign varchar(32) 否 是 【md5签名】参照下方md5签名说明
md5签名方法说明:(不需要排序按以下格式拼接即可)
{value}要替换成接收到的值,{apikey}要替换成平台分配的接入密钥,可在商户后台获取
customerid={value}&sdorderno={value}&reqtime={value}&{apikey}
使用md5签名上面拼接好的字符串即可生成小写的32位密文
备注:该接口只能查询最近三天的订单记录
返回数据:订单成功则返回(示例):{"status":1,"msg":"成功订单","sdorderno":"商户订单号","total_fee":"订单金额","sdpayno":"平台订单号"}
订单未付款或失败返回(示例):{"status":0,"msg":"失败订单"}
通知方式:异步POST、同步GET
请求类型:application/x-www-form-urlencoded
收到通知回复:success 联调时请务必确保异步通知下该参数正常返回。对接务必做好重复通知处理、客户端业务处理成功以及重复通知(已经处理的订单)均需要返回success标识。
若未正常返回 success 标识,系统认定为通知失败,通知失败订单不会参与结算、列入异常订单,并且会在后续自动补发最多10次通知,最后一次通知依然失败会冻结订单。需联系客服解冻后方可再次通知!
通知参数说明:
参数 类型长度 参数说明 status varchar(1) 【订单状态】1:成功,其他失败 customerid varchar(8) 【商户编号】 sdpayno varchar(20) 【平台订单号】 sdorderno varchar(20) 【商户订单号】 total_fee decimal(10,2) 【订单金额】单位元 realmoney decimal(10,3) 【实付金额】单位元 paytype varchar(20) 【支付类型】 remark varchar(50) 【订单备注】 sign varchar(32) 【md5验证签名串】参照签名方法
md5签名方法说明:(按以下格式拼接即可不需要排序)
{value}要替换成接收到的值,{apikey}要替换成平台分配的接入密钥,可在商户后台获取
customerid={value}&status={value}&sdpayno={value}&sdorderno={value}&total_fee={value}&realmoney={value}&paytype={value}&{apikey}
使用md5签名上面拼接好的字符串即可生成小写的32位密文
paytype参数值说明: 具体接入方式需联系客服审核开通后方可接入
支付方式名称 支付编号 支付宝 alipay 支付宝H5 alih5 微信H5 wxh5 微信公众号 wxgzh 微信扫码 weixin 银联支付 union 银联H5 unh5 在线网银 bank
当paytype为bank时,bankcode为以下银行取值:
银行名称 银行编号 中国工商银行 ICBC 中国农业银行 ABC 中国银行 BOCSH 建设银行 CCB 招商银行 CMB 浦发银行 SPDB 广发银行 GDB 交通银行 BOCOM 邮政储蓄银行 PSBC 中信银行 CNCB 民生银行 CMBC 光大银行 CEB 华夏银行 HXB 兴业银行 CIB 上海银行 BOS 上海农商 SRCB 平安银行 PAB 北京银行 BCCB
错误返回说明:
返回参数 返回说明 排查方案 002 商户账号未审核 联系客服检查商户状态 003 商户账号已停用 联系客服检查商户状态 104 商户API功能未开通 联系客服核实该商户是否开通api接入功能 106 支付方式不存在 检查paytype参数,是否填写正确。 201 Sign验证失败 检查签名方式,以及商户秘钥是否正确。