[微信支付]退款及对账开发指南
1 微信支付退款及对账 开发指南 2 目 录 1 引言 4 1.1 文档概述 . 4 1.2 阅读对象 . 4 1.3 业务术语 . 4 2 方案概述 4 2.1 行业背景 . 4 2.2 接口介绍 . 5 2.3 业务实现流程 . 5 3 交互模式 6 3.1 后台系统调用交互模式 . 6 3.2 后台通知交互模式 . 7 4 数据格式 7 4.1 GET 或 POST . 7 4.2 XML 数据格式 8 4.3 字符串格式 . 8 5 数字签名 8 5.1 签名原始串 . 9 5.2 签名算法 . 9 5.2.1 MD5 签名 9 6 补单机制 9 7 接口 . 10 7.1 退款接口 10 7.1.1 业务功能 11 7.1.2 交互模式 12 3 7.1.3 请求参数列表 13 7.1.4 应答参数列表 13 7.5 退款明细查询接口 14 7.5.1 业务功能 15 7.5.2 交互模式 16 7.5.3 请求参数列表 17 7.5.4 应答参数列表 17 7.2 对账单下载接口 17 7.2.1 业务功能 18 7.2.2 交互模式 18 7.2.3 请求参数列表 18 7.2.4 应答参数列表 19 4 1 引言 1.1 文档概述 本文描述了财付通针对合作商户提供的微信支付解决方案,帮助商户轻松实现退款对账的功能。文档分别 从交互模式、签名、接口、注意事项等方面详细介绍了财付通的工作方式和开发过程,可以帮助开发人员快速 入门并掌握开发技能,同时也可以作为日后接口参数以及参数类型的速查手册。 1.2 阅读对象 合作商户系统的技术开发人员,要求具有WEB、手机程序开发背景,了解http 和 https 请求和应答的格式 和过程,对XML 格式有所掌握。 接口调试过程中经常遇到的一些问题可以参考 和 进行解 决。 1.3 业务术语 术语 示例 说明 商户号 1900000109 测试商户号账号,由财付通自动分配的10 位数字 密钥 8934e7d15453e97507ef794cf7b0519d 为保证通讯不被篡改,财付通与商户之间约定的32 位字符串,算签名sign 时使用 证书 ****.pfx 帐号申请成功邮件通知的数字证书 2 方案概述 2.1 行业背景 在电子商务中,商家、买家、中间服务方是交易活动中的三个环节。买家选购商品下发订单,商家确认订 单,买家通过中间服务方向商家支付货款,商家发货履行订单。在这个过程中商家的网站需要集成中间服务方 的支付功能,让买家完成货款的支付。财付通作为一家专业的中间服务方除了提供支付接口外,还提供了支付 5 结果查询接口和订单查询接口等,帮助商家记录货款的往来,让商家能把更多的精力集中到商品服务上。 商户的货款会按照合同约定以T0~ T7 的频率结算到商户的银行账户,同时收取手续费。这个过程由财付通 自动完成,商户无需做相关开发工作。 2.2 接口介绍 接口名 请求URL 功能说明 结果说明 退款接口 /refundapi/gateway/ref und.xml 商户在后台对一笔已支付订单 发起退款,采用后台系统调用交 互模式 退款成功、失败或者退款流程中的 结果实时返回 对 账 单 下 载接口 cgi-bin/mchdown_real_n ew.cgi 商户对指定日期所有交易明细 的下载 下载指定日所有明细数据,包含支 付成功、退款的订单信息 退 款 明 细 查询接口 gateway/normalrefundqu ery.xml 根据退款ID 查询具体的退款明 细 退款明细数据实时返回 2.3 业务实现流程 APP用户商户Server财付通Server 1.APP用户提交订单退款申请 2.生成退款请求发送到财付通 3.后台通知商户退款结果 4.商户确认收到通知 5.商户通知APP用户退款结果 微信支付退款业务流程 1、用户通过APP 应用提交退款申请给到商户; 2、商户核实APP 用户退款申请无误,向财付通发送退款请求信息; 6 3、财付通收到商户提交的退款信息无误,实时返回退款结果信息到商户后台; 4、商户收到财付通成功退款结果后,需要返回处理成功的标志“success”,以告知财付通不再通知; 5、商户推送APP 消息告知用户退款结果。 3 交互模式 3.1 后台系统调用交互模式 后台系统调用交互模式是指商户系统向财付通系统发送请求数据,并同步等待财付通系统处理完毕后返回 的响应数据。数据交互是商户服务器与财付通服务器直接通信,一般请求采用http 的 get 或 post,应答采用 xml 数据格式。 如用户在商户系统查询时,商户要确认用户某个订单是否支付成功,可以在服务器上发送一个查询请求, 财付通收到请求后把查询结果以xml 格式返回给商户,商户处理结果后再显示给用户。 商户服务器财付通服务器 1.0根据订单号查询订单状态 1.1返回详细的订单内容 3.2 后台通知交互模式 后台通知交互模式是指财付通系统主动向商户系统发送通知数据,并同步等待商户系统处理完毕后返回的 响应数据。数据交互是财付通服务器与商户服务器直接通信,一般请求采用http 的 get 或 post,应答用字符 串格式。 如用户在财付通支付成功后,财付通会在后台通过notify_url 向商户系统发起通知,商户处理后成功返回 success,失败返回fail 或其他字符。 7 商户服务器财付通服务器 1.0后台通知商户支付结果 1.1商户确认收到通知 4 数据格式 4.1 GET 或 POST 采用HTTP 标准的GET 或 POST 协议,为了保证接收方接收数据正确,传递的参数如果存在特殊字符(如、 =等)需要进行URL Encode。 GET 或 POST 一般用于页面跳转交互模式的请求和通知、后台系统调用模式的请求、后台通知模式的请求。 4.2 XML 数据格式 采用标准XML 协议,所有参数只存在一级节点中,不采用多级节点嵌套。 ?xml version=“1.0“ encoding=“gb2312“ ? root retcode0/retcode retmsg/retmsg partner1900000109/partner status0/status sign8DB4A013A8B515349C307F1E448CE836/sign /root 一般有返回码retcode 参数,0 表示调用成功;非0 表示调用失败,失败时结果不签名,只有retcode 和 返回信息retmsg。 XML 一般用于后台系统调用模式的应答。 8 4.3 字符串格式 直接以简单字符串作为数据内容,一般用于后台通知模式的接口反馈,表示处理是否成功。 返回结果 结果说明 success 处理成功,财付通系统收到此结果后不再进行后续通知 fail 或其他字符 处理不成功,财付通收到此结果或者没有收到任何结果,系统通过补单机制(详 见第6 节)再次通知 5 数字签名 为了保证数据传输过程中的数据真实性和完整性,我们需要对数据进行数字签名,在接收签名数据之后进 行签名校验。 数字签名有两个步骤,先按一定规则拼接要签名的原始串,再选择具体的算法和密钥计