




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 收银台支付接口说明书 -开发手册 V1.0目录1 接口简介42 统一下单43 异步回调说明84 异步回调IP地址说明95 错误编码说明106 接口demo101 接口简介l 采用HTTP方式访问l 字符集使用UTF-8l 请求采用POST或GET方式l 商户与平台间的交互都需要验证签名l 返回结果编码code等于000000时为成功状态, 否则为未成功状态,需要继续查询确认最终状态l 对接商户信息2 测试商户账号(测试金额最低一元)商户号秘钥0664296B081B318E99CC08AD54F90037B947473 统一下单3.1请求说明请求URL支持验证方式MD5格式POST/GET方
2、式表单提交3.2参数说明序号字段名是否必填类型说明1orderAmountYString订单金额( 金额最小0.01 )2orderIdYString商户订单号(字符串只允许使用字母、数字、字符并以字母或数字开头 每商户提交的订单号,必须在自身账户交易中唯一)3merchantYInt商户号(商户在本平台的唯一商户号)4payMethodYInt支付方式(详细内容请看附录)5payTypeYInt支付类型(详细内容请看附录)6versionYString接口版本(固定为 1.0)7signTypeYString签名方式( 固定为 MD5 )8outcomeYStringyes返回JSON格式数
3、据,no则返回支付页面9signYString签名10productNameNString商品名称11productDescNString商品描述12notifyUrlYString异步回调地址(接收订单回调信息的地址)13createTimeYInt订单创建时间(时间戳 秒 格式 10位)14returnUrlYstring同步跳转地址(支付成功后跳转到的页面URL)15isLoopNstringyes(需要轮训需要添加此参数,不参与验签)3.3 发起订单sign签名说明将参数按照顺序组合merchant=&orderAmount=10&orderId=bbb&out
4、come=yes&payMethod=2&payType=21&signType=MD5&version=1.0拼接商户密钥merchant=&orderAmount=10&orderId=bbb&outcome=yes&payMethod=2&payType=21&signType=MD5&version=1.09ED5F15DA1DA14A0F70052F4434F3936然后md5得到sign参数的值DB30EC3668CD727FCB46423.4返回Json数据的验签当outcome参数为yes的
5、时候返回的是json格式的数据,例如:"url":"","merchant":"","orderId":"34","sign":"d9faaee24f76bcc8db37ca12187cc1b0","code":0 先将merchant与orderId的值进行拼接得到:再这个值md5便得到sign的值:d9faaee24f76bcc8db37ca12187cc1b0;3.5统一下单接口说明以PHP语言为例:<?
6、php$data = array( "orderAmount"=>"10", /金额 "orderId"=> time().rand(1000,9999),/订单号 "merchant"=>"", /商户号 'payMethod'=>'1', /支付方式 "payType"=>"11", /支付类型 "signType"=>"MD5", "
7、version"=>"1.0",/此参数作用为返回的数据的格式 yes时返回的是json格式数据,并且没有支付页面,只返回支付链接 no时返回的是支付页面 "outcome"=>"no",);/组装参与签名的字段,生成一个数组$data;$key = '1' /商户号所对应的商户密钥ksort($data); /按照键名对关联数组进行升序排序/生成 URL-encode 之后的请求字符串$postString = http_build_query($data);/将$postString连接上商户
8、密钥后再MD5加密$mdString = md5($postString.$key);/将MD5后的数据全部专为大写 生成签名$signMyself = strtoupper($mdString);/将签名加入数组$data"sign" = $signMyself;$data'productName' = ''$data'productDesc' = '' ;$data'createTime' = time();/time()为当前时间戳 秒级/接收订单回调数据的URL$data'not
9、ifyUrl' = ''/支付成功后跳转到的地址$data'returnUrl' = ''/使用GET方式访问需要生成 URL-encode 之后的请求字符串/ 这里可以用 GET 也可以用POST方式$postString = http_build_query($data);$url="".$postString;header("Location: " .$url); 4 异步回调说明对后台通知交互时,如果收到商户的应答不是成功或者超时,我们认为通知失败,会通过一定的策略定期重新发起通知,尽可能的
10、提高通知的成功率,但是不保证通知最终一定能成功。由于存在重复发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。系统必须能够正确处理重复的通知。采用加密算法传输订单信息给商户.协议: post参数: 获取HTTP post过去的数据流,然后解密,校验.加密参数说明: json格式数据示例 :"sign":"5E02C75FED3CD0E1BF261587BD072B5F","paramsJson":"code":"000000","message":"Pay
11、Success","data":"orderId":"31806ea69f8192c","tradeNo":"31384","outTradeNo":"","orderAmount":39,"payAmount":39,"dateTime":"2019-01-14 21:58:45"加密算法:将json格式数据转为数组格式;将paramsJson 字段整体base64
12、加密后的字符串再进行md5加密(小写),再将商户密钥字符串拼接上面的md5加密数据,得到的字符串md5(小写)然后全部大写,即可得到签名字符串,得到的签名字符串和平台传递的进行进行对比,如果相同,请进行后续操作,不同,即为非法伪造参数说明序号字段名类型说明1signstring签名2paramsJsonJson数据参与验签数据2.1codeString000000:返回成功2.2messageString "PaySuccess"2.3dataArray()订单信息2.3.1orderIdString商品订单号2.3.2orderAmountString收款金额2.3.3d
13、ateTimeString收款时间2.3.4trade_noString银行订单号2.3.5outTradeNoString平台订单号订单支付成功才返回数据,如果没有支付是不会返回数据的5 异步回调IP地址说明必须限制回调数据接收只能来自于以下IP418(如果因为被非法回调造成的一切经济损失概不负责)请求接口后跳转到支付页面,支付成功后会发起异步通知(notifyUrl),通知到商户订单支付信息,商户接收到支付成功通知后返回success.注:必须且仅为此七个小写的英文字符组成的success6 错误编码说明发起订单接口错误码400000请求方
14、式错误400001未接收到数据流400002检测payMethod参数400003检测merchant参数400004检测orderId参数400005检测orderAmount参数400006orderAmount 不能小于等于 0400007检测 version 参数400008version 不等于 1.0400009检测 signType 参数400010signType 不等于 MD5400011检测 sign 参数400012检测 outcome 参数400013检测 notifyUrl 参数400014检测 createtime 参数400015检测 payType 参数4000
15、16商户不存在400017商户状态为禁用400018商户支付类型状态为禁用400019签名错误400020代理商被禁用400021业务员被禁用400022该商户信息未配置400023商户所属业务员余额不足400024该商户支付方式通道未配置400025收款账号错误400026payType和payMethod不对应400027订单超时400028订单支付成功400029订单关闭400030金额必须为整数400031订单金额错误(更换金额重试)400101发起订单失败404001订单号错误404002订单关闭404003用户未支付404004系统错误404005订单金额错误500001系统错误5
16、000027 查询接口将商户号商户密钥订单号的值拼接然后md5小写得到签名sign例如:E6EF57580BA8E9F818D2A1D939F94C021Md5得到3ef42e92808ffd14a6a5c7e907135bff然后以get或post提交过来例如:HOST./Api/Check/index?partner=&orderId=021&sign=3ef42e92808ffd14a6a5c7e907135bff&isLoop=no返回的是json数据"orderid":"021","money":1&
17、quot;,"cretetime":"","paytime":"0","outTradeNo":"","status":"支付失败","code":"400029"如果是轮训号将参数isLoop值改为yes就可以了8 接口demo8.1统一下单接口demo<?php$data = "orderAmount"=>"1", /金额 "ord
18、erId"=>time().rand(1000,9999),/订单号 "merchant"=>, /商户号 'payMethod'=>'2', "payType"=>"21", "signType"=>"MD5", "version"=>"1.0", "outcome"=>"no",;$key = ' ' /keyks
19、ort($data);/函数对关联数组按照键名进行升序排序。$postString = http_build_query($data);/返回一个 URL 编码后的字符串。$signMyself = strtoupper(md5($postString.$key);$data"sign" = $signMyself;$data'productName' = '测/试'$data'productDesc' = '订单9677'$data'createTime' = time();$data'returnUrl' = ""$data'notifyUrl' = ''$postStri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论