欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    财付通API接口文档.doc

    • 资源ID:60122090       资源大小:262.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    财付通API接口文档.doc

    Java SDK下载当前版本发布日期下载链接文件大小1.0.02010-6-30openapi-JAVA-SDK-1.0.0.zip129ksdk-javadoc.zip128k样例代码下载当前版本发布日期下载链接文件大小版本说明1.0.12010-8-23appdemo-movieticket-java-1.0.1.zip1.28M增加http-p3p头,解决iframe中无法跟踪session的问题引言文档概述本文描述了财付通开放平台的JAVA SDK,帮助开发者轻松实现在线支付、收付款等功能。文档详细介绍了财付通开放平台的工作方式和开发过程,可以帮助开发人员快速入门并掌握开发技能,同时也可以作为日后接口参数以及参数类型的速查手册。阅读对象具有WEB程序开发背景,了解JAVA语言。业务术语术语说明ISV独立软件供应商 / Independent Software Vendor,可以是商户、个人或者第三方中介开发者财付通APP指ISV使用财付通开放平台SDK开发的WEB应用程序,运行于第三方服务器上为最终用户提供服务商户指财付通的商户,商家可以是ISV。开放平台财付通提供给ISV的开发注册、应用管理、沙箱测试平台。最终用户指通过财付通开放平台使用财付通APP的财付通用户接口业务流程支付流程支付流程中,用户在财付通APP中购买业务,通过财付通支付平台进行支付。典型业务流程如下:买家在财付通APP上浏览下单购买一个商品,财付通APP会生成一个支付链接,此链接通过用户的浏览器跳转到财付通开放平台,财付通通过此链接获取支付请求的参数,引导用户完成支付过程。 用户在财付通完成支付后,财付通通过return_url将用户浏览重新定向到财付通APP,财付通APP向用户提示订单状态和后续操作。同时,财付通会通过后台回调财付通APP的notify_url,财付通APP在收到支付结果通知后可以根据通知ID查询通知内容,在确保支付成功后再进行业务逻辑处理(例如发货),这样可以进一步提高安全性,防止伪支付成功结果的诈骗。通知查询/订单查询流程通知查询/订单查询是指财付通APP向财付通系统发送查询请求,并同步等待财付通系统处理完毕后返回的响应数据。数据交互是财付通APP与财付通服务器直接通信。 例如用户在财付通APP查询时,财付通APP要确认用户某个订单是否支付成功,可以向财付通发送一个查询请求,财付通收到请求后返回查询结果,财付通APP处理结果后再显示给用户。后台通知流程后台通知是指财付通系统主动向财付通APP发送通知数据,并同步等待财付通APP处理完毕后返回的响应数据。数据交互是财付通服务器与财付通APP直接通信,一般请求采用http的get或post,应答用字符串格式。 用户在财付通支付成功后,财付通会在后台通过notify_url向财付通APP发起通知,财付通APP处理后成功返回success,失败返回fail或其他字符。补单机制对后台通知流程,如果财付通收到财付通APP的应答不是success或由于网络异常超时,财付通认为通知失败,财付通会通过一定的策略(如1分钟、2分钟、4分钟、8分钟、16分钟、32分钟,共6次)定期重新发起通知,尽可能提高通知的成功率,但财付通不保证通知最终能成功。由于上述原因,可能存在同样的通知多次发送给财付通APP的情况。财付通APP必须能够正确处理,在收到重复的后台通知不重复引发业务流程(例如发货)。财付通推荐的做法是,当收到财付通发送的通知消息时,需要检查本系统内订单的状态,判断该通知是否已经处理过。为防止并发产生的问题,在对业务数据进行状态检查和处理之前,要求采用加锁判断进行并发控制。功能划分财付通APP负责与之业务相关的代码和页面。 财付通开放平台提供支付相关的业务功能和页面。具体业务功能请参照后面章节SDK说明支付页面如下:在小钱包中:在普通浏览器中:SDK说明概述API说明类名说明com.tenpay.api.PayRequest支付请求com.tenpay.api.PayResponse支付响应com.tenpay.api.OrderQueryRequest订单查询请求com.tenpay.api.OrderQueryResponse订单查询响应com.tenpay.api.NotifyQueryRequest通知查询请求com.tenpay.api.NotifyQueryResponse通知查询响应com.tenpay.api.ShareLoginState共享登录用户信息共享登录用户信息接口:1 用户跳转到应用时,初始化ShareLoginState对象,ShareLoginState.getUserId()即可获得当前用户的id支付接口,常见开发步骤如下:2 初始化请求对象PayRequest3 设置请求系统级参数(应用ID等),例如PayRequest.setAppid(应用ID)4 设置请求业务级参数,例如PayRequest.setParameters(参数名称, 参数值)5 生成跳转URL,例如PayRequest.getURL()6 将用户重定向到跳转URL,例如Servlet/JSP中的重定向方法response.sendRedirect()或用Javascript进行页面跳转通知查询或订单查询,常见开发步骤如下:7 初始化请求对象,例如NotifyQueryRequest或OrderQueryRequest8 设置请求系统级参数(应用ID等),例如NotifyQueryRequest.setAppid(应用ID)9 设置请求业务级参数,例如NotifyQueryRequest.setParameters(参数名称, 参数值)10 通过NotifyQueryRequest.send()方法将请求发送到接口并获得响应对象,例如NotifyQueryResponse response = NotifyQueryRequest.send()11 判断订单支付状态,例如NotifyQueryResponse.isPaySuccessful()12 从响应对象中获取参数值,进行相应处理,例如NotifyQueryResponse.getParameter(参数名)后台通知交互模式,常见开发步骤如下:13 构造一个Servlet或JSP接收开放平台的回调14 初始化响应对象PayResponse15 判断订单支付状态,例如PayResponse.isPaySuccessful()16 从响应对象中获取参数值,进行相应处理,例如PayResponse.getParameter(参数名)调用过程支付类支付跳转·业务功能买家在财付通APP中下订单后付款,财付通APP调用财付通开放平台支付接口生成支付URL,页面跳转到财付通支付中心或银行。用户完成支付后,财付通把用户引导回财付通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表示请求发送到沙箱环境,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)支付成功后,财付通系统反馈的通知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 boolean isPaySuccessful(); /* * 获取支付结果信息 * * return 支付结果说明 */ public String getPayInfo(); /* * 获取响应参数 * * param key 参数名称 * return 参数值 */ public String getParameter(String key); 参数名称详见下表参数名称必填类型说明total_fee是Int用户实际支付的金额,单位为分,如果discount有值,通知的total_fee + discount = 请求的total_feetransaction_id是String(28)财付通交易号out_trade_no是String(32)财付通APP系统的订单号,与请求一致。time_end是String(14)支付完成时间,格式为yyyymmddhhmmss,如2009年12月27日9点10分10秒表示为010。时区为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否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)签名类型,取值:MD5、RSA,默认:MD5,暂只支持MD5·样例 / 应用ID String appid = "" / 密钥 String secretKey = "" / 是否沙箱测试 boolean isSandBox = true; / 初始化通知查询请求 NotifyQueryRequest request = new NotifyQueryRequest(secretKey); request.setAppid(appid);/ 设置应用ID request.setInSandBox(isSandBox);/ 请求发送到沙箱 / 设置业务参数 request.setParameter("notify_id", "xxxxxxxxxxxxxxx");/ 通知查询ID,此ID来源于支付之后的回调 try / 发起接口调用 NotifyQueryResponse response = request.send(); if (response.isPaySuccessful() / 支付成功 / 处理业务逻辑 / . else / 支付处于其他状态 System.out.println(response.getPayInfo(); / 获取详细状态说明 catch (Exception e) / 异常处理 订单查询·业务功能根据商户订单号或者财付通订单号查询财付通侧记录的具体订单信息。·接口调用方向开发者开发应用调用财付通开放接口。·请求 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); /* * 设置业务参数 * * 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_id优先transaction_idString(28)财付通交易号, out_trade_no和transaction_id至少一个必填,同时存在时transaction_id优先sign_key_index否Int多密钥支持的密钥序号,默认1sign_type否String(8)签名类型,取值:MD5、RSA,默认:MD5,暂只支持MD5service_version否String(8)版本号,默认为1.0·返回结果订单查询返回结果与通知查询返回结果相同,参见“通知验证返回结果”·样例 / 签名密钥: 开发者注册时,由财付通分配 String secretKey = "" / 初始化订单查询请求 OrderQueryRequest req = new OrderQueryRequest(secretKey); / 设置在沙箱中运行:正式环境请设置为false req.setInSandBox(true); / 设置财付通App-id req.setAppid(""); / 设置财付通App订单号:财付通APP的订单号 req.setParameter("out_trade_no", "test"); / 发送请求,并获取返回对象 OrderQueryResponse res = req.send(); if (res.isPayed() / 已经支付 / 已经支付财付通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,如010 System.out.println("支付完成时间:" + res.getParameter("time_end"); else / 未正常支付,或者调用异常,如调用超时、网络异常 System.out.println("支付未成功状态说明:" + res.getPayInfo(); 其他类共享登录·业务功能买家转到APP中时,系统将买家的ID传入APP,方便用户订单生成、用户状态更新等相关操作。·交互模式买家点击跳转到APP时,id等相关信息将签名后通过url一起发往APP。·样例 / 签名密钥: 开发者注册时,由财付通分配 String secretKey = "" /创建共享登陆态对象 ShareLoginState state = new ShareLoginState(req, secretKey); / 获取用户id String 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

    注意事项

    本文(财付通API接口文档.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开