资源描述
收银台支付接口说明书“开发手册V1.05异步回调IP地址说明必须限制回调数据接收只能来自于以下IP139.159.141.141124.71.115.48(如果因为被非法回调造成的一切经济损失概不负责)请求接口后跳转到支付页面,支付成功后会发起异步通知(notifyUH),通知到商户订单支付信息,商户接收到支付成功通知后返回success.注:必须且仅为此七个小写的英文字符组成的success发起订单接口错误码400000请求方式错误400001未接收到数据流400002检测payMethod参数400003检测merchant参数400004检测orderld参数400005检测orderAmount参数400006orderAmount不能小于等于0400007检测version参数400008version 不等于 1.0400009检测signType参数400010signType 不等于 MD5400011检测sign参数400012检测outcome参数400013检测notifyUrl参数400014检测createtime参数400015检测payType参数400016商户不存在400017商户状态为禁用400018商户支付类型状态为禁用400019签名错误400020代理商被禁用400021业务员被禁用400022该商户信息未配置400023商户所属业务员余额不足400024该商户支付方式通道未配直400025收款账号错误400026payType 和 payMethod 不对应400027订单超时400028订单支付成功400029订单关闭400030金额必须为整数400031订单金额错误(更换金额重试)400101发起订单失败404001订单号错误404002订单关闭404003用户未支付404004系统错误404005订单金额错误500001系统错误500002将商户号商户密钥订单号的值拼接然后md5小写得到签名sign例如:E6EF57580BA8E9F818D2A1D939F94C021Md5 得到 3ef42e92808ffdl4a6a5c7e907135bff然后以get或post提交过来例如:HOST./Api/Check/index?partner=&orderId=021&sign=3ef42e92808ffdl4a6a5c7e907135bff&isLoop=no返回的是json数据(,orderidn:n021M/”money”:l”,”cretetime”:”7paytime”:”0、outTradeNo”:”,”status”:” 支付失败”,“code”:”400029”如果是轮训号将参数isLoop值改为yes就可以了8 接口 demo8.1统一下单接口 demov?php$data =orderAmount = l,/ 金额”orderld” = time().rand(1000,9999),/订单号merchant = z 商户号,payMethod=2,”payType” = ”2,signType, = ,MD5,zoutcome = no B$key = /keksort($data);/函数对关联数组按照键名进行升序排序。$postString = http_build_query($data);/jg回一个 URL 编码后的字符串。$signMyself = strtoupper(md5($postString.$key);$datasign = $signMyself;$dataproductName=测/试$dataproductDesc=订单 9677;$data createTime = time();$datareturnUrr=$datanotifyllrr=$postString = http_build_query($data);$url = $host.7/Api/Index/createOrder?.$postString;header(Location:.$url);8.2异步回调demo$jsonBase64 = base64_encode(json_encode($arrparamsJson );$jsonBase64Md5 二$arrsign)if($_SERVERREMOTE_ADDR= ”文档回调 IP”|$_SERVERREMOTE_ADDRecho success,支付方式可选值(payMethod ):支付方式可选值描述1微信支付2支付宝支付5银联云闪付支付类型可选值(payType ):支付类型可选值描述11微信扫码支付21支付宝支付23支付宝原生51银联支付目录1接口简介42统一下单43异步回调说明84异步回调IP地址说明95错误编码说明106 接口 demo 10采用HTTP方式访问字符集使用UTF-8 请求采用POST或GET方式商户与平台间的交互都需要验证签名 返回结果编码code等于000000时为成功状态,否则为未成功状态,需要继续查询确认最终状态 对接商户信息2测试商户账号(测试金额最低一元)商户号秘钥0664296B081B318E99CC08AD54F90037B947473.1请求说明请求URL支持验证方式MD5格式POST/GET方式表单提交3.2参数说明序号字段名是否必填类型说明1orderAmountYString订单金额(金额最小o.oi)2orderldYString商户订单号(字符串只允许使用字母、数字、字符并以字母或数字开头每商户提交的订单号,必须在自身账户交易中唯一)3merchantYInt商户号(商户在本平台的唯一商户号)4payMethodYInt支付方式(详细内容请看附录)5payTypeYInt支付类型(详细内容请看附录)6versionYString接口版本(固定为L0 )7signTypeYString签名方式(固定为MD5 )8outcomeYStringyes 返回JSON格式数据,no 则返回支付页面9signYString签名10productNameNString商品名称11productDescNString商品描述12notifyUrlYString异步回调地址(接收订单回调信息的地址)13createTimeYInt订单创建时间(时间戳秒格式10位)14return UrlYstring同步跳转地址(支付成功后勘辟专到的页面URL )15isLoopNstringyes(需要轮训需要添加此参数,不参与验签)3.3发起订单sign签名说明将参数按照顺序组合merchant=&orderAmount=10&orderId = bbb8toutcome=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.09ED5F15DAlDA14A0F70052F4434F3936然后md5得到sign参数的值DB30EC3668CD727FCB46423.4返回Json数据的验签orderld当outcome参数为yes的时候返回的是json格式的数据,例如:sign: J|faae24f76bcc8db37cal2187cclb0Jad9faaee24f76bcc8db37cal2187cclb0;先将merchant与orderld的值进行拼接得到:再这个值md5便得到sign的值:3.5统一下单接口说明以PHP语言为例:”version” = ”LO”,/Afe参数作用为返回的数据的格式 yes时返回夔json格式数据,并且没有支付页些;只返回支付链接 no,时返回的蔽存矗outcom ii组装参与签名的字段,生成一个数组$key = T; 商户号所对应的商户密钥ksort($data);/按照键名对关联数组进旬序排“将$postString连接上商户密钥后再巫匝$mdSt门ng =strtouppe()EdataFproductNameTT|$dataproductD e$data createTime,=$d ata retu r n“使用GET方式访问需甚成URL-enc性之后的请求字符串“这里可以用GET也可以用p5?FJJJU|=http_build_query( )隧赣羊.$url);4异步回调说明对后台通知交互时,如果收到商户的应答不是成功或者超时,我们认为通知失败,会通过一定的策略定期重新发起通知,尽可能的提高通知的成功率,但是不保证通知最终一定能成功。由于存在重复发送后台通知的情况,因此同样的通知可能会多次发送给商户系统。系统必须能够正确处理重复的通知。采用加密算法传输订单信息给商户.协议:post参数:获取HTTP post过去的数据流,然后解密,校验.加密参数说明:json格式数据示例:,signn:,5E02C75FED3CD0ElBF261587BD072B5F,7,paramsJsonn:(ncoden:000000,nmessage:PaySuccess,data”:orderId:31806ea69f8192c,tradeNo”:31384I7outTradeNo”:、orderAmount:39,payAmount”:39,”dateTime:201901-14 21:58:45)加密算法: 将json格式数据转为数组格式; 将paramsJson字段整体base64加密后的字符串再进行md5加密(小写),再将商户密钥字符串拼接上面的md5加密数据,得到的字符串md5(小写) 然后全部大写,即可得到签名字符串,得到的签名字符串和平台传递的进行进行对比,如果相同,请进行后续操作,不同,即为非法伪造参数说明序号字段名类型说明1signstring签名2paramsJsonJson数据参与验签数据2.1codeString000000 :返回成功2.2messageStringPaySuccess2.3dataArrayO订单信息防郢凛回委漆玄者耳空身牧凿盼郢澹回委必用酒目军宙膜言宙口与丞6uu;sONapel)n。SW台亩宅闾bumsoiTap 叫VEZ回目嵯那6ii!isaiuiiajepSET遐等彻6uu;siunoujvapo乙乙含宙口皆具6uu;sppapjoTSZ
展开阅读全文