世联翻译公司完成即时到账批量退款有密接口中文翻译
时间:2018-11-27 08:48 来源:未知 作者:dongli 点击:次
世联翻译公司完成即时到账批量退款有密接口中文翻译
![]() 1 文档说明1.1 功能描述对通过即时到账接口付款完成的交易进行部分或全部的退还。商户需输入支付密码。1.2 阅读对象支付宝即时到账批量退款有密接口文档是面向具有一定的网站开发能力,了解ASP、PHP、JAVA、ASP.NET等开发语言中的一种及SQL数据库语言的网站开发、维护和管理人员。1.3 业务术语表1-1 业务术语
2 功能演示步骤1: 商户根据接口的要求配置批量退款请求参数,如图2-1所示界面,并组装成URL向支付宝系统发起请求,URL与参数配置详见“4 请求参数说明”。图2-1 设置批量退款接口参数 步骤2: 支付宝系统接收到商户的URL请求之后,显示如图2-2所示界面。在支付密码输入框中输入密码,并点击<确认>按钮。 图2-2 输入支付密码 步骤3: 退款申请成功后显示如图2-3所示界面。 图2-3 退款申请成功界面 以上界面仅供参考,请依据商户自身的业务逻辑或平台管理情况,把接口嵌入到商户系统中。 3 数据交互图3-1 商户系统请求/支付宝响应交互模式 (1) 构造请求数据 商户根据支付宝提供的接口规则,通过程序生成得到签名结果及要传输给支付宝的数据集合。 (2) 发送请求数据 把构造完成的数据集合,通过页面链接跳转或表单提交的方式传递给支付宝。 (3) 支付宝对请求数据进行处理 支付宝得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理完成这次发送过来的数据请求。 (4) 返回处理的结果数据 对于处理完成的交易,支付宝会以两种方式把数据反馈给商户网站。 l 返回HTML页面的提示信息; l 支付宝服务器主动发起通知,调用商户在请求时设定好的页面路径(参数notify_url,如果商户没设定,则不会进行该操作)。 (5) 对获取的返回结果数据进行处理 商户在服务器异步通知页面(参数notify_url指定页面文件)获取支付宝返回的结果数据后,可以结合自身网站的业务逻辑进行数据处理。 4 请求参数说明4.1 含义请求参数是商户在与支付宝进行数据交互时,提供给支付宝的请求数据,以便支付宝根据这些数据进一步处理。4.2 列表表4-1 请求参数说明
4.3 单笔数据集参数说明l 单笔数据集格式为:第一笔交易退款数据集#第二笔交易退款数据集#第三笔交易退款数据集…#第N笔交易退款数据集;l 交易退款数据集的格式为:原付款支付宝交易号^退款总金额^退款理由; l 不支持退分润功能。 4.4 单笔数据集(detail_data)注意事项l detail_data中的退款笔数总和要等于参数batch_num的值;l 退款理由中不能有“^”、“|”、“$”、“#”等影响detail_data格式的特殊字符; l detail_data中退款总金额不能大于交易总金额; l 一笔交易可以多次退款,退款次数最多不能超过99次,需要遵守多次退款的总金额不超过该笔交易付款金额的原则。 4.5 样例https://mapi.alipay.com/gateway.do?seller_email=Jier1105%40alitest.com&batch_num=1&refund_date=2011-01-12+11%3A21%3A00¬ify_url=http%3A%2F%2Fapi.test.alipay.net%2Fatinterface%2Freceive_notify.htm&sign=9b3426cac65d36f64bffbfbc6ce50549&service=refund_fastpay_by_platform_pwd&partner=2088101008267254&detail_data=2011011201037066%5E5.00%5E%D0%AD%C9%CC%CD%CB%BF%EE&sign_type=MD5&batch_no=201101120001 说明: 本样例仅供参考,支付宝网关为https://mapi.alipay.com/gateway.do 。 5 服务器异步通知参数说明5.1 含义支付宝对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。5.2 列表表5-1 服务器异步通知参数说明
5.3 样例http://www.xxx.com/alipay/notify_url.php?notify_time=2009-08-12+11%3A08%3A32¬ify_type=batch_refund_notify¬ify_id=70fec0c2730b27528665af4517c27b95&sign_type=MD5&sign=_p_w_l_h_j0b_gd_aejia7n_ko4_m%252Fu_w_jd3_nx_s_k_mxus9_hoxg_y_r_lunli_pmma29_t_q%3D%3D&batch_no=20060702001&success_num=2&result_details=2010031906272929%5E80%5ESUCCESS说明: 本样例仅供参考,实际网关为商户域名。 6 通知返回数据处理6.1 服务器异步通知页面特性(1) 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;(2) 支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如: request.Form("out_trade_no")、$_POST['out_trade_no']; (3) 支付宝主动发起通知,该方式才会被启用; (4) 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的); (5) 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的; (6) 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知; (7) 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。 一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:2m,10m,10m,1h,2h,6h,15h); (8) 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知; (9) cookies、session等在此页面会失效,即无法获取这些数据; (10) 该方式的调试与运行必须在服务器上,即互联网上能访问; (11) 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理; (12) 当商户收到服务器异步通知并打印出success时,服务器异步通知参数notify_id才会失效。也就是说在支付宝发送同一条异步通知时(包含商户并未成功打印出success导致支付宝重发数次通知),服务器异步通知参数notify_id是不变的。 6.2 通知触发条件表6-1 通知触发条件
6.3 商户业务处理注意事项当支付宝处理完成后,支付宝会把处理结果以支付宝服务器主动通知商户网站的形式,反馈给商户网站。商户可以从服务器异步通知页面中获得这些信息,并且在验证通过的判断中增加商户的业务逻辑处理程序。当商户有传递参数notify_url(服务器异步通知页面路径)时,商户必须判断商户网站中是否已经对该次的通知结果数据做过同样处理。如果不判断,存在潜在的风险,商户自行承担因此而产生的所有损失。l 本接口只支持https请求,详见“4.5 样例”; l 本接口不支持退分润; l 同一批次中不允许包含两条交易号相同的退款明细。 说明: 更多业务处理注意事项请参见《即时到账批量退款有密接口(refund_fastpay_by_platform_pwd)接入与使用规则》文档。 7 签名机制7.1 生成待签名的字符串7.1.1 需要参与签名的参数在请求参数列表中,除去sign、sign_type两个参数外,其他需要使用到的参数皆是要签名的参数。(个别接口中参数sign_type也需要参与签名。) 在通知返回参数列表中,除去sign、sign_type两个参数外,凡是通知返回回来的参数皆是要签名的参数。 7.1.2 生成待签名字符串 对于如下的参数数组: string[] parameters={ "service=refund_fastpay_by_platform_pwd", "partner=2088101008267254", "_input_charset=GBK", "return_url=http://api.test.alipay.net/atinterface/ receive_notify.htm", "batch_no=201101120001", "batch_num=1", "seller_email=Jier1105@alitest.com", "seller_user_id=2088101008267254", "detail_data=2011011201037066^5.00^协商退款", "refund_date=2011-01-12 11:21:00" }; 对数组里的每一个值从a到z的顺序排序,若遇到相同首字母,则看第二个字母,以此类推。 排序完成之后,再把所有数组值以“&”字符连接起来,如: _input_charset=GBK&batch_no=201101120001&batch_num=1&detail_data=2011011201037066^5.00^协商退款&partner=2088101008267254&refund_date=2011-01-12 11:21:00&return_url=http://api.test.alipay.net/atinterface/receive_notify.htm&seller_email=Jier1105@alitest.com&seller_user_id=2088101008267254&service=refund_fastpay_by_platform_pwd 这串字符串便是待签名字符串。 注意: l 没有值的参数无需传递,也无需包含到待签名数据中; l 签名时将字符转化成字节流时指定的字符集与_input_charset保持一致; l 如果传递了_input_charset参数,这个参数也应该包含在待签名数据中; l 根据HTTP协议要求,传递参数的值中如果存在特殊字符(如:&、@等),那么该值需要做URL Encoding,这样请求接收方才能接收到正确的参数值。这种情况下,待签名数据应该是原生值而不是encoding之后的值。例如:调用某接口需要对请求参数email进行数字签名,那么待签名数据应该是email=test@msn.com,而不是email=test%40msn.com。 7.2 签名7.2.1 MD5签名在MD5签名时,需要私钥参与签名。MD5的私钥是以英文字母和数字组成的32位字符串。商户可登录到商户服务中心(https://b.alipay.com ),安装数字证书,在“技术服务”栏目中点击“交易安全校验码”,即可查看。 l 请求时签名 当拿到请求时的待签名字符串后,需要把私钥直接拼接到待签名字符串后面,形成新的字符串,利用MD5的签名函数对这个新的字符串进行签名运算,从而得到32位签名结果字符串(该字符串赋值于参数sign)。 l 通知返回时验证签名 当获得到通知返回时的待签名字符串后,同理,需要把私钥直接拼接到待签名字符串后面,形成新的字符串,利用MD5的签名函数对这个新的字符串进行签名运算,从而得到32位签名结果字符串。此时这个新的字符串需要与支付宝通知返回参数中的参数sign的值进行验证是否相等,来判断签名是否验证通过。 7.2.2 DSA、RSA签名 在DSA或RSA的签名时,需要私钥和公钥一起参与签名。私钥与公钥皆是客户通过OPENSSL来生成得出的。客户把生成出的公钥与支付宝技术人员配置好的支付宝公钥做交换。因此,在签名时,客户要用到的是客户的私钥及支付宝的公钥。 l 请求时签名 当拿到请求时的待签名字符串后,把待签名字符串与客户的私钥一同放入DSA或RSA的签名函数中进行签名运算,从而得到签名结果字符串。 l 通知返回时验证签名 当获得到通知返回时的待签名字符串后,把待签名字符串、支付宝提供的公钥、支付宝通知返回参数中的参数sign的值三者一同放入DSA或RSA的签名函数中进行非对称的签名运算,来判断签名是否验证通过。 8 如何验证是否支付宝请求l 目的验证此次通知信息是否是支付宝服务器发来的信息,以帮助校验反馈回来的数据的真假性。 l 工作原理 获取支付宝返回数据之一的通知校验ID(notify_id),按照支付宝要求的格式拼接成要请求的链接,如: https://mapi.alipay.com/gateway.do?service=notify_verify&partner=2088002396712354¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BFioE227%252BPfNMl8jwyZqMIiXQWxhOCmQ5MQO%252FWd93rvCB%252BaiGg 通过访问这个请求链接,利用编程方法来模拟http请求与支付宝服务器进行交互,获得支付宝服务器上处理的结果。 如果获得的信息是true,则校验成功;如果获得的信息是其他,则校验失败。 9 建议与意见如果您在阅读技术文档时有任何建议和意见,请点击下面的链接跟帖回复,我们将根据您的反馈完善文档内容。http://club.alipay.com/read.php?tid=8684674&fid=703 10 附录10.1 即时到账批量退款业务错误码表10-1 即时到账批量退款业务错误码
10.2 系统错误码注意:当出现系统错误提示时,请联系支付宝技术支持协助处理。 表10-2 系统错误码
世联翻译-让世界自由沟通!专业的全球语言翻译供应商,上海翻译公司专业品牌。丝路沿线56种语言一站式翻译与技术解决方案,专业英语翻译、日语翻译等文档翻译、同传口译、视频翻译、出国外派服务,加速您的全球交付。 世联翻译公司在北京、上海、深圳等国际交往城市设有翻译基地,业务覆盖全国城市。每天有近百万字节的信息和贸易通过世联走向全球!积累了大量政商用户数据,翻译人才库数据,多语种语料库大数据。世联品牌和服务品质已得到政务防务和国际组织、跨国公司和大中型企业等近万用户的认可。 |