- 翻译公司资讯
-
世联翻译公司完成即时到账批量退款有密接口中文翻译
发布时间:2018-11-27 08:48 点击:
世联翻译公司完成即时到账批量退款有密接口中文翻译
1 文档说明
1.1 功能描述
对通过即时到账接口付款完成的交易进行部分或全部的退还。商户需输入支付密码。
1.2 阅读对象
支付宝即时到账批量退款有密接口文档是面向具有一定的网站开发能力,了解ASP、PHP、JAVA、ASP.NET等开发语言中的一种及SQL数据库语言的网站开发、维护和管理人员。
1.3 业务术语
表1-1 业务术语
术语 解释 返回 将退款请求的处理结果以HTML格式返回给商户。 分润 将交易的某一部分费用分给其它账户。 请求 向支付宝系统发起一次退款接口的调用。 通知 将退款请求的处理结果数据通过服务器主动通知的方式通知给商户网站。 数据集 退款请求的明细数据。
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 请求参数说明
参数 参数名称 类型(长度范围) 参数说明 是否可为空 样例 基本参数 service 接口名称 String 接口名称。 不可空 refund_fastpay_by_p
latform_pwdpartner 合作者身份ID String(16) 签约的支付宝账号对应的支付宝唯一用户号。
以2088开头的16位纯数字组成。不可空 2088101008267254 _input_charset 参数编码字符集 String 商户网站使用的编码格式,如utf-8、gbk、gb2312等。 不可空 GBK sign_type 签名方式 String DSA、RSA、MD5三个值可选,必须大写。 不可空 MD5 sign 签名 String 请参见“7 签名机制”。 不可空 tphoyf4aoio5e6zxoaydjevem2c1s1zo notify_url 服务器异步通知页面路径 String(200) 支付宝服务器主动通知商户网站里指定的页面http路径。 可空 http://api.test.alipay.net/atinterface/receive_notify.htm 业务参数 seller_email 卖家支付宝账号 String 如果卖家Id已填,则此字段可为空。 不可空 Jier1105@alitest.com seller_user_id 卖家用户ID String 卖家支付宝账号对应的支付宝唯一用户号。
以2088开头的纯16位数字。
登录时,seller_email和seller_user_id两者必填一个。如果两者都填,以seller_user_id为准。不可空 2088101008267254 refund_date 退款请求时间 String 退款请求的当前时间。
格式为:yyyy-MM-dd hh:mm:ss。不可空 2011-01-12 11:21:00 batch_no 退款批次号 String 每进行一次即时到账批量退款,都需要提供一个批次号,通过该批次号可以查询这一批次的退款交易记录,对于每一个合作伙伴,传递的每一个批次号都必须保证唯一性。
格式为:退款日期(8位)+流水号(3~24位)。
不可重复,且退款日期必须是当天日期。流水号不能接受“000”,但能接受英文字符。不可空 201101120001 batch_num 总笔数 String 即参数detail_data的值中,“#”字符出现的数量加1,最大支持1000笔(即“#”字符出现的最大数量为999个)。 不可空 1 detail_data 单笔数据集 String 退款请求的明细数据。
格式详情参见“4.3 单笔数据集参数说明”。不可空 2011011201037066^5.00^协商退款
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 服务器异步通知参数说明
参数 参数名称 类型(长度范围) 参数说明 是否可为空 样例 基本参数 notify_time 通知时间 Date 通知发送的时间。
格式为:yyyy-MM-dd HH:mm:ss。不可空 2009-08-12 11:08:32 notify_type 通知类型 String 通知的类型。 不可空 batch_refund_notify notify_id 通知校验ID String 通知校验ID。 不可空 70fec0c2730b27528665af4517c27b95 sign_type 签名方式 String DSA、RSA、MD5三个值可选,必须大写。 不可空 MD5 sign 签名 String 请参见“7 签名机制”。 不可空 b7baf9af3c91b37bef4261849aa76281 业务参数 batch_no 退款批次号 String 原请求退款批次号。 不可空 20060702001 success_num 退款成功总数 String 一次退款请求成功完成处理的总笔数。
一笔交易,退交易款成功才是成功。
0<= success_num<= 总退款笔数。不可空 2 result_details 退款结果明细 String 退款结果明细。
格式为:交易号^退款金额^处理结果$退费账号^退费账户ID^退费金额^处理结果。
若退款申请提交成功,处理结果会返回“success”。
若提交失败,退款的处理结果中会有报错码,参见“10.1 即时到账批量退款业务错误码”。可空 2010031906272929^80^SUCCESS$ jax_chuanhang@alipay.com^2088101003147483^0.01^SUCCESS
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 通知触发条件
触发条件名 触发条件描述 触发条件默认值 退款处理结束 退款处理结束。 true(触发通知)
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 即时到账批量退款业务错误码
错误代码(error_code) 含义 ILLEGAL_SIGN 签名不正确 ILLEGAL_DYN_MD5_KEY 动态密钥信息错误 ILLEGAL_ENCRYPT 加密不正确 ILLEGAL_ARGUMENT 参数不正确 ILLEGAL_SERVICE Service参数不正确 ILLEGAL_USER 用户ID不正确 ILLEGAL_PARTNER 合作伙伴ID不正确 ILLEGAL_EXTERFACE 接口配置不正确 ILLEGAL_PARTNER_EXTERFACE 合作伙伴接口信息不正确 ILLEGAL_SECURITY_PROFILE 未找到匹配的密钥配置 ILLEGAL_AGENT 代理ID不正确 ILLEGAL_SIGN_TYPE 签名类型不正确 ILLEGAL_CHARSET 字符集不合法 ILLEGAL_CLIENT_IP 客户端IP地址无权访问服务 HAS_NO_PRIVILEGE 无权访问 SESSION_TIMEOUT session超时 ILLEGAL_DIGEST_TYPE 摘要类型不正确 ILLEGAL_DIGEST 文件摘要不正确 ILLEGAL_FILE_FORMAT 文件格式不正确 ILLEGAL_TARGET_SERVICE 错误的target_service ILLEGAL_ACCESS_SWITCH_SYSTEM partner不允许访问该类型的系统 ILLEGAL_ENCODING 不支持该编码类型 EXTERFACE_IS_CLOSED 接口已关闭 ILLEGAL_REQUEST_REFERER 防钓鱼检查不支持该请求来源 ILLEGAL_ANTI_PHISHING_KEY 防钓鱼检查非法时间戳参数 ANTI_PHISHING_KEY_TIMEOUT 防钓鱼检查时间戳超时 ILLEGAL_EXTER_INVOKE_IP 防钓鱼检查非法调用IP BATCH_NUM_EXCEED_LIMIT 总比数大于1000 REFUND_DATE_ERROR 错误的退款时间 BATCH_NUM_ERROR 传入的总笔数格式错误 BATCH_NUM_NOT_EQUAL_TOTAL 传入的退款条数不等于数据集解析出的退款条数 SINGLE_DETAIL_DATA_EXCEED_LIMIT 单笔退款明细超出限制 NOT_THIS_SELLER_TRADE 不是当前卖家的交易 DUBL_TRADE_NO_IN_SAME_BATCH 同一批退款中存在两条相同的退款记录 DUPLICATE_BATCH_NO 重复的批次号 TRADE_STATUS_ERROR 交易状态不允许退款 BATCH_NO_FORMAT_ERROR 批次号格式错误 SELLER_INFO_NOT_EXIST 卖家信息不存在 PARTNER_NOT_SIGN_PROTOCOL 平台商未签署协议 NOT_THIS_PARTNERS_TRADE 退款明细非本合作伙伴的交易 DETAIL_DATA_FORMAT_ERROR 数据集参数格式错误 PWD_REFUND_NOT_ALLOW_ROYALTY 有密接口不允许退分润 NANHANG_REFUND_CHARGE_AMOUNT_ERROR 退票面价金额不合法 REFUND_AMOUNT_NOT_VALID 退款金额不合法 TRADE_PRODUCT_TYPE_NOT_ALLOW_REFUND 交易类型不允许退交易 RESULT_FACE_AMOUNT_NOT_VALID 退款票面价不能大于支付票面价 REFUND_CHARGE_FEE_ERROR 退收费金额不合法 REASON_REFUND_CHARGE_ERR 退收费失败 RESULT_AMOUNT_NOT_VALID 退收费金额错误 RESULT_ACCOUNT_NO_NOT_VALID 账号无效 REASON_TRADE_REFUND_FEE_ERR 退款金额错误 REASON_HAS_REFUND_FEE_NOT_MATCH 已退款金额错误 TXN_RESULT_ACCOUNT_STATUS_NOT_VALID 账户状态无效 TXN_RESULT_ACCOUNT_BALANCE_NOT_ENOUGH 账户余额不足 REASON_REFUND_AMOUNT_LESS_THAN_COUPON_FEE 红包无法部分退款
10.2 系统错误码
注意:
当出现系统错误提示时,请联系支付宝技术支持协助处理。
表10-2 系统错误码
错误代码(error_code) 含义 SYSTEM_ERROR 支付宝系统错误 BATCH_REFUND_STATUS_ERROR 退款记录状态错误 BATCH_REFUND_DATA_ERROR 批量退款后数据检查错误 REFUND_TRADE_FAILED 不存在退交易,但是退收费和退分润失败 REFUND_FAIL 退款失败(该结果码只会出现在做意外数据恢复时,找不到结果码的情况)
Unitrans世联翻译公司在您身边,离您近的翻译公司,心贴心的专业服务,专业的全球语言翻译与信息解决方案供应商,专业翻译机构品牌。无论在本地,国内还是海外,我们的专业、星级体贴服务,为您的事业加速!世联翻译公司在北京、上海、深圳等国际交往城市设有翻译基地,业务覆盖全国城市。每天有近百万字节的信息和贸易通过世联走向全球!积累了大量政商用户数据,翻译人才库数据,多语种语料库大数据。世联品牌和服务品质已得到政务防务和国际组织、跨国公司和大中型企业等近万用户的认可。 专业翻译公司,北京翻译公司,上海翻译公司,英文翻译,日文翻译,韩语翻译,翻译公司排行榜,翻译公司收费价格表,翻译公司收费标准,翻译公司北京,翻译公司上海。