财付通API接口文档样例代码

上传人:ba****u 文档编号:193310136 上传时间:2023-03-09 格式:DOCX 页数:16 大小:61.15KB
收藏 版权申诉 举报 下载
财付通API接口文档样例代码_第1页
第1页 / 共16页
财付通API接口文档样例代码_第2页
第2页 / 共16页
财付通API接口文档样例代码_第3页
第3页 / 共16页
资源描述:

《财付通API接口文档样例代码》由会员分享,可在线阅读,更多相关《财付通API接口文档样例代码(16页珍藏版)》请在装配图网上搜索。

1、财付通API接口文档样例代码引言文档概述本文描述了财付通开放平台的JAVA SDK,帮助开发者轻松实现在线支付、收付款等功能。文档 详细介绍了财付通开放平台的工作方式和开发过程,可以帮助开发人员快速入门并掌握开发技能,同时也 可以作为日后接口参数以及参数类型的速查手册。阅读对象具有WEB程序开发背景,了解JAVA语言。业务术语术语说明ISV独立软件供应商/ Independent Software Vendor,可以是商户、个人或者第三方中介开发者财付通APP指ISV使用财付通开放平台SDK开发的WEB应用程序,运行于第三方服务器上为最终用户提供 服务商户指财付通的商户,商家可以是ISV。开放

2、平台财付通提供给ISV的开发注册、应用管理、沙箱测试平台。最终用户指通过财付通开放平台使用财付通APP的财付通用户接口业务流程支付流程支付流程中,用户在财付通APP中购买业务,通过财付通支付平台进行支付。典型业务流程如下:财村透4P?i推订单1111i1L_i1!.生成订如J支甘恰尽111返同支对社斐4一111tJ1赢勿际I lr;L.Jt支甘操非觥户谱求堂定与珈幻旬-I通过notify uj-1反尚通灯件面1D准W订侦修.11而兀收土通如I 商I或房傕雨丞或丁而萄不嵌弱处理业邳您制买家在财付通APP上浏览下单购买一个商品,财付通APP会生成一个支付链接,此链接通过用 户的浏览器跳转到财付通开

3、放平台,财付通通过此链接获取支付请求的参数,引导用户完成支付过程。用户在财付通完成支付后,财付通通过return_url将用户浏览重新定向到财付通APP,财付通APP 向用户提示订单状态和后续操作。同时,财付通会通过后台回调财付通APP的notify_url,财付通APP在 收到支付结果通知后可以根据通知ID查询通知内容,在确保支付成功后再进行业务逻辑处理(例如发货), 这样可以进一步提高安全性,防止伪支付成功结果的诈骗。通知查询/订单查询流程通知查询/订单查询是指财付通APP向财付通系统发送查询请求,并同步等待财付通系统处理完 毕后返回的响应数据。数据交互是财付通APP与财付通服务器直接通信

4、。例如用户在财付通APP查询时,财付通APP要确认用户某个订单是否支付成功,可以向财付通 发送一个查询请求,财付通收到请求后返回查询结果,财付通APP处理结果后再显示给用户。退回订单推息后台通知流程后台通知是指财付通系统主动向财付通APP发送通知数据,并同步等待财付通APP处理完毕后 返回的响应数据。数据交互是财付通服务器与财付通APP直接通信,一般请求采用http的get或post, 应答用字符串格式。用户在财付通支付成功后,财付通会在后台通过notify_url向财付通APP发起通知,财付通APP 处理后成功返回success,失败返回fail或其他字符。补单机制对后台通知流程,如果财付通

5、收到财付通APP的应答不是success或由于网络异常超时,财付通 认为通知失败,财付通会通过一定的策略(如1分钟、2分钟、4分钟、8分钟、16分钟、32分钟,共6次) 定期重新发起通知,尽可能提高通知的成功率,但财付通不保证通知最终能成功。由于上述原因,可能存在同样的通知多次发送给财付通APP的情况。财付通APP必须能够正确 处理,在收到重复的后台通知不重复引发业务流程(例如发货)。财付通推荐的做法是,当收到财付通发送的通知消息时,需要检查本系统内订单的状态,判断该 通知是否已经处理过。为防止并发产生的问题,在对业务数据进行状态检查和处理之前,要求采用加锁判 断进行并发控制。功能划分财付通A

6、PP负责与之业务相关的代码和页面。财付通开放平台提供支付相关的业务功能和页面。具体业务功能请参照后面章节SDK说明支付页面如下: 在小钱包中:我的钱包砌何通 首页演圳电戢票技付中心欢迎您,Aixxia邃(0) 辰愤帮助本次交易额元直接支付给Aixxia您购买的是:太平洋电影票财付逋余额支付网上银行支付一点通支付可应付总价:财付通账户名:财付通余额:财付通支付密码:33.0(元943259136831.99 元I忘记支付密码?在普通浏览器中:支忖风本衣交易II 33.00元糖支村陆AlKx4d擂岛艾另世蒙立日峰除.无-瑞认收出曹拒射甘51金窿支忖屈卜殂行女忖一由支村睇皿上坦行?成付总愉# 33.

7、 00S # 北四射忖通味户名e惑酵型Mtt逋支伽脚|移四忖ew学美玮1将遇|割R中心|皆助申心|谏衽其才|第尸安全|壮宝我们CaptightQ 1g-I-:aiD Tancanl All Righls Raerved 露讯强司.版拥所有SDK说明概述API说明类名说明com.tenpay.api.PayRequest支付请求com.tenpay.api.PayResponse支付响应com.tenpay.api.OrderQueryRequest订单查询请求com.tenpay.api.OrderQueryResponse订单查询响应com.tenpay.api.NotifyQueryReq

8、uest通知查询请求com.tenpay.api.NotifyQueryResponse通知查询响应com.tenpay.api.ShareLoginState共享登录用户信息共享登录用户信息接口:1 用户跳转到应用时,初始化ShareLoginState对象,ShareLoginState.getUserId()即可获得当前用 户的id支付接口,常见开发步骤如下:2 初始化请求对象PayRequest3 设置请求系统级参数(应用ID等),例如PayRequest.setAppid(应用ID)4 设置请求业务级参数,例如PayRequest.setParameters(参数名称,参数值)5 生

9、成跳转 URL,例如 PayRequest.getURL()6 将用户重定向到跳转 URL,例如Servlet/JSP中的重定向方法response.sendRedirect()或用 Javascript进行页面跳转通知查询或订单查询,常见开发步骤如下:7 初始化请求对象,例如 NotifyQueryRequest 或 OrderQueryRequest8 设置请求系统级参数(应用ID等),例如NotifyQueryRequest.setAppid(应用ID)9 设置请求业务级参数,例如NotifyQueryRequest.setParameters(参数名称,参数值)10通过NotifyQu

10、eryRequest.send()方法将请求发送到接口并获得响应对象,例如NotifyQueryResponse response = NotifyQueryRequest.send()11 判断订单支付状态,例如 NotifyQueryResponse.isPaySuccessful()12 从响应对象中获取参数值,进行相应处理,例如NotifyQueryResponse.getParameter(参数名) 后台通知交互模式,常见开发步骤如下:13构造一个Servlet或JSP接收开放平台的回调14初始化响应对象PayResponse15 判断订单支付状态,例如 PayResponse.is

11、PaySuccessful()16 从响应对象中获取参数值,进行相应处理,例如PayResponse.getParameter(参数名) 调用过程谖龄.用户射村通抑平断折通奏旧平台小技包2、迎转到射付i&APPr ShareLoginSt汛。aetlsftr IdOP日Y(!m(jum&七 jstURL)3、下订4、产生支f.tur I.引导用到射付通W付页面I 6、支树完成桃独回APP异步L-联取诜知IDIpByH&Epcnaa. getNot ifyId () I谓务必都在攥收通知后调用此方法,否照瓯忖套律连国发送 通知._JIPayfle*pgE;e. acknqw I edgeSocI

12、 cs&b 0LjJ7、通知财付派接收成功5、躇转到财出通完成支河择作楫通知验证蕨取订单信息Hot ifyQut?rRsquest. *encJOiBfayadO是雎一表明KI重伺完成的方注返回tW事示互付完成9、判断是否完成支伺ifQuryitasporie isPa河0 I完成APP内部遮辑1Q、同河,页面5St?f Filr&turn_ur I家亩宣点诚清钎单 号可以从卵时inn荻职.或者 通过通知ID验证(查询)荻取支付类支付跳转业务功能买家在财付通APP中下订单后付款,财付通APP调用财付通开放平台支付接口生成支付URL, 页面跳转到财付通支付中心或银行。用户完成支付后,财付通把用户

13、引导回财付通APP指定的页面(return_url),并通过回调支付请求中的notify_url反馈支付结果。接口调用方向开发者开发应用调用财付通开放接口 ,请求通知查询请求com.tenpay.api.NotifyQueryRequest方法列表/*构造方法* param secretKey*/public NotifyQueryRequest(String secretKey);/*设置应用ID* param appid* 应用ID*/public void setAppid(String appid);/*设置是否在沙箱环境* param inSandBox* true表示请求发送到沙箱

14、环境,false表示请求发送到正式环境*/public void setInSandBox(boolean inSandBox);/*设置业务参数* param key* 参数名称* param value* 参数值*/public void setParameter(String key, String value);/*调用开放平台接口发送请求,获取响应* return接口调用的返回结果* throws Exception*/public CommonResponse send() throws Exception;参数名称详见下表参数名称必填类型说明notify_id是String(64

15、)支付成功后,财付通系统反馈的通知ID此参数来源详见3.1.2.5章节参数列表 中的 notify_idsign_key_index否Int多密钥支持的密钥序号,默认1sign_type否String(8)签名类型,取值:MD5、RSA,默认:MD5,暂只支持MD5service_version否String(8)版本号,默认为1.0返回结果com.tenpay.api.NotifyQueryResponse 通知查询响应方法列表/*判断支付结果* return true表示支付成功,false表示支付处于其他状态,需要调用getPayInfo()方法获取详细说 明*/public boole

16、an isPaySuccessful();*获取支付结果信息* return支付结果说明*/public String getPayInfo();*获取响应参数* param key参数名称* return参数值*/public String getParameter(String key);参数名称详见下表参数名称必填类型说明total_fee是Int用户实际支付的金额,单位为分,如果discount有值,通知的total_fee + discount = 请求的 total_feetransaction_id是String(2 8)财付通交易号out_trade_no是String(32)

17、财付通APP系统的订单号,与请求一致。time_end是String(14)支付完成时间,格式为yyyymmddhhmmss,如2009年12月27日9点10分10秒 表示为20091227091010。时区为GMT+8 beijing。该时间取自财付通服务器input_charset否String(8)字符编码,取值:GBK、UTF-8,默认:GBK。sign_key_index否Int多密钥支持的密钥序号,默认1attach否String(64)商家数据包,原样返回bank_type否String(16)银行类型,默认为“DEFAULT,一财付通,其余参照第4.1节银行编码fee_type

18、否Int现金支付币种,目前只支持人民币,默认值是1-人民币transport_fee否Int物流费用,单位分,默认0。如果有值,必须保证transport_fee + product_fee =total_feeproduct_fee否Int物品费用,单位分。如果有值,必须保证transport_fee + product_fee=total_feediscount否Int折扣价格,单位分,如果有值,通知的total_fee + discount =请求的total_feebuyer_alias否String(64)对应买家账号的一个加密串sign_type否String(8)签名类型,取值:

19、MD5、RSA,默认:MD5,暂只支持MD5.样例/应用IDString appid = 0000000155;/密钥String secretKey = 123456;/是否沙箱测试boolean isSandBox = true;/初始化通知查询请求NotifyQueryRequest request = new NotifyQueryRequest(secretKey);request.setAppid(appid);/ 设置应用 IDrequest.setlnSandBox(isSandBox);/ 请求发送到沙箱/设置业务参数request.setParameter(notify_i

20、d”, xxxxxxxxxxxxxxx);/ 通知查询 ID,此 ID 来源于支付之后的回调try (/发起接口调用NotifyQueryResponse response = request.send();if (response.isPaySuccessful() /支付成功/处理业务逻辑/ . else /支付处于其他状态System.out.println(response.getPayInfo(); / 获取详细状态说明 catch (Exception e) /异常处理订单查询业务功能根据商户订单号或者财付通订单号查询财付通侧记录的具体订单信息。接口调用方向开发者开发应用调用财付通

21、开放接口。.请求com.tenpay.api.OrderQueryRequest 订单查询请求方法列表/*构造方法* param secretKey*/public OrderQueryRequest(String secretKey);/*设置应用ID* param appid* 应用ID*/public void setAppid(String appid);/*设置是否在沙箱环境* param inSandBox* true表示请求发送到沙箱环境,false表示请求发送到正式环境 */public void setInSandBox(boolean inSandBox);/*设置业务参数

22、* param key* 参数名称* param value* 参数值*/public void setParameter(String key, String value);/*调用开放平台接口发送请求,获取响应* return接口调用的返回结果* throws Exception*/public CommonResponse send() throws Exception;参数名称详见下表参数名称必填类型说明out_trade_no二者必填其一String(32)财付通APP内部的订单号,out_trade_no和transaction_id至少一个必填,同 时存在时transaction

23、_id优先transaction_idString(2 8)财付通交易号,out_trade_no和transaction_id至少一个必填,同时存在时 transaction_id 优先sign_key_index否Int多密钥支持的密钥序号,默认1sign_type否String(8)签名类型,取值:MD5、RSA,默认:MD5,暂只支持MD5service_versio n否String(8)版本号,默认为1.0返回结果订单查询返回结果与通知查询返回结果相同,参见“通知验证返回结果”.样例/签名密钥:开发者注册时,由财付通分配String secretKey = 645075582184

24、50442324574381315452;/初始化订单查询请求OrderQueryRequest req = new OrderQueryRequest(secretKey);/设置在沙箱中运行:正式环境请设置为falsereq.setInSandBox(true);/设置财付通App-idreq.setAppid(0000000201);/设置财付通App订单号:财付通APP的订单号req.setParameter(out_trade_no”, test000000001);/发送请求,并获取返回对象OrderQueryResponse res = req.send();if (res.is

25、Payed() (/ 已经支付/已经支付财付通app订单号System.out.println(支付成功,应用订单号:+ res.getParameter(out_trade_no);/财付通app订单号对应的财付通订单号System.out.println(财付通订单号:+ res.getParameter(transaction_id);/支付金额,单位:分System.out.println(支付金额:+ res.getParameter(total_fee) + 分);/ 支付完成时间,格式为 yyyymmddhhmmss,如20091227091010System.out.print

26、ln(支付完成时间:+ res.getParameter(time_end);else (/未正常支付,或者调用异常,如调用超时、网络异常System.out.println(支付未成功状态说明:+ res.getPayInfo();其他类共享登录业务功能买家转到APP中时,系统将买家的ID传入APP,方便用户订单生成、用户状态更新等相关操作。交互模式买家点击跳转到APP时,id等相关信息将签名后通过url 一起发往APP。,样例/签名密钥:开发者注册时,由财付通分配String secretKey = 64507558218450442324574381315452;创建共享登陆态对象Sha

27、reLoginState state = new ShareLoginState(req, secretKey);/获取用户idString userID = state.getUserId();枚举类型银行编码编码含义说明DEFAULT财付通,支持的各类支付方式包括(银行,财付通账户,一点通等)ICBC中国工商银行支持信用卡CMB招商银行支持信用卡CCB中国建设银行支持信用卡ABC中国农业银行支持信用卡SPDB上海浦东发展银行支持信用卡SDB深圳发展银行支持信用卡CIB兴业银行不支持信用卡BOB北京银行支持信用卡CEB中国光大银行支持信用卡CMBC中国民生银行支持信用卡CITIC中信银行支持信用卡GDB广东发展银行支持信用卡PAB平安银行支持信用卡BOC中国银行支持信用卡COMM交通银行支持信用卡ICBCB2B中国工商银行(企业)企业网银CMBB2B招商银行(企业)企业网银POSTGC中国邮政储蓄银行(银联)BOC_EPOS中行EPOSICBC_EPOS工行EPOSCCB_EPOS建行EPOS

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!