支付宝即时到账
即时到账
支付宝网页即时到账功能,可让用户在线向开发者的支付宝账号支付资金,交易资金即时到账,帮助开发者快速回笼资金。
交易步骤少,简单、方便。
交易资金三个月内可退款,提升买家购物保障。
本产品签约后,默认开通以下接口功能:
签约方式
申请地址(即时到账收款):https://b.alipay.com/order/productDetail.htm?productId=2015110218012942
提交申请后,会有一个审核阶段,审核通过才能使用该接口。
登录b.alipay.com->我的商家服务,可在“签约管理”中查看审核进度。
即时到账交易接口
请求参数说明
请求参数是商户在与支付宝进行数据交互时,提供给支付宝的请求数据,以便支付宝根据这些数据进一步处理。
参数 |
参数名称 |
类型(字节长度) |
参数说明 |
为空 |
样例 |
基本参数 |
|||||
service |
接口名称 |
String |
接口名称。 |
不可空 |
create_direct_pay_by_user |
partner |
合作者身份ID |
String(16) |
签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 |
不可空 |
2088101011913539 |
_input_charset |
参数编码字符集 |
String |
商户网站使用的编码格式,如UTF-8、GBK、GB2312等。 |
不可空 |
GBK |
sign_type |
签名方式 |
String |
DSA、RSA、MD5三个值可选,必须大写。 |
不可空 |
MD5 |
sign |
签名 |
String |
请参见本文档“附录:签名与验签”。 |
不可空 |
7d314d22efba4f336fb187697793b9d2 |
notify_url |
服务器异步通知页面路径 |
String(190) |
支付宝服务器主动通知商户网站里指定的页面http路径。 |
可空 |
http://api.test.alipay.net/atinterface/receive_return.htm |
return_url |
页面跳转同步通知页面路径 |
String(200) |
支付宝处理完请求后,当前页面自动跳转到商户网站里指定页面的http路径。 |
可空 |
http://api.test.alipay.net/atinterface/receive_return.htm |
业务参数 |
|||||
out_trade_no |
商户网站唯一订单号 |
String(64) |
支付宝合作商户网站唯一订单号。 |
不可空 |
6843192280647118 |
subject |
商品名称 |
String(256) |
商品的标题/交易标题/订单标题/订单关键字等。 该参数最长为128个汉字。 |
不可空 |
贝尔金护腕式 |
payment_type |
支付类型 |
String(4) |
只支持取值为1(商品购买)。 |
不可空 |
1 |
total_fee |
交易金额 |
Number |
该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 |
不可空 |
100 |
seller_id |
卖家支付宝用户号 |
String(16) |
三个参数至少必须传递一个。 当签约账号就是收款账号时,请务必使用参数seller_id,即seller_id的值与partner的值相同。 三个参数的优先级别是:seller_id>seller_account_name>seller_email。 |
不可空 |
2088002007018966 |
seller_email |
卖家支付宝账号 |
String(100) |
alipay-test01@alipay.com |
||
seller_account_name |
卖家支付宝账号别名 |
String(100) |
tstable02@alipay.com |
||
buyer_id |
买家支付宝用户号 |
String(16) |
三个参数的优先级别是:buyer_id>buyer_account_name>buyer_email。 |
可空 |
2088002007018955 |
buyer_email |
买家支付宝账号 |
String(100) |
tstable01@alipay.com |
||
buyer_account_name |
买家支付宝账号别名 |
String(100) |
tstable03@alipay.com |
||
price |
商品单价 |
Number |
单位为:RMB Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。此参数为单价 规则:price、quantity能代替total_fee。即存在total_fee,就不能存在price和quantity;存在price、quantity,就不能存在total_fee。 |
可空 |
10.00 |
quantity |
购买数量 |
Number |
price、quantity能代替total_fee。即存在total_fee,就不能存在price和quantity;存在price、quantity,就不能存在total_fee。 |
可空 |
1 |
body |
商品描述 |
String(1000) |
对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 |
可空 |
美国专业护腕鼠标垫,舒缓式凝胶软垫模拟手腕的自然曲线和运动,创造和缓的GelFlex舒适地带! |
show_url |
商品展示网址 |
String(400) |
收银台页面上,商品展示的超链接。 |
可空 |
http://www.360buy.com/product/113714.html |
paymethod |
默认支付方式 |
String |
取值范围:
如果不设置,默认识别为余额支付。 说明: 必须注意区分大小写。 |
可空 |
directPay |
enable_paymethod |
支付渠道 |
String |
用于控制收银台支付渠道显示,该值的取值范围请参见支付渠道。 可支持多种支付渠道显示,以“^”分隔。 |
可空 |
directPay^bankPay^cartoon^cash |
anti_phishing_key |
防钓鱼时间戳 |
String |
通过时间戳查询接口获取的加密支付宝系统时间戳。 如果已申请开通防钓鱼时间戳验证,则此字段必填。 |
可空 |
587FE3D2858E6B01E30104656E7805E2 |
exter_invoke_ip |
客户端IP |
String(15) |
用户在创建交易时,该用户当前所使用机器的IP。 如果商户申请后台开通防钓鱼IP地址检查选项,此字段必填,校验用。 |
可空 |
128.214.222.111 |
extra_common_param |
公用回传参数 |
String(100) |
如果用户请求时传递了该参数,则返回给商户时会回传该参数。 |
可空 |
你好,这是测试商户的广告。 |
it_b_pay |
超时时间 |
String |
设置未付款交易的超时时间,一旦超时,该笔交易就会自动被关闭。 取值范围:1m~15d。 m-分钟,h-小时,d-天,1c-当天(1c-当天的情况下,无论交易何时创建,都在0点关闭)。 该参数数值不接受小数点,如1.5h,可转换为90m。 |
可空 |
1h |
token |
快捷登录授权令牌 |
String(40) |
如果开通了快捷登录产品,则需要填写;如果没有开通,则为空。 |
可空 |
201103290c9f9f2c03db4267a4c8e1bfe3adfd52 |
qr_pay_mode |
扫码支付方式 |
String(1) |
扫码支付的方式,支持前置模式和跳转模式。 前置模式是将二维码前置到商户的订单确认页的模式。需要商户在自己的页面中以iframe方式请求支付宝页面。具体分为以下4种:
跳转模式下,用户的扫码界面是由支付宝生成的,不在商户的域名下。
|
可空 |
1 |
qrcode_width |
商户自定二维码宽度 |
Integer |
商户自定义的二维码宽度。 当qr_pay_mode=4时,该参数生效。 |
可空 | 200 |
need_buyer_realnamed |
是否需要买家实名认证 |
String(2) |
是否需要买家实名认证。
|
可空 | T |
hb_fq_param |
花呗分期参数 |
String |
参数格式:hb_fq_seller_percent ^卖家承担付费比例|hb_fq_num ^期数。
两个参数必须一起传入。 两个参数用“|”间隔。Key和value之间用“^”间隔。 具体花呗分期期数和卖家承担收费比例可传入的数值请咨询支付宝。 |
可空 | hb_fq_seller_percent^100|hb_fq_num^3 |
goods_type |
商品类型 |
String(2) |
商品类型:
如果不传,默认为实物类商品。 |
可空 | 1 |
https://mapi.alipay.com/gateway.do?body=%C3%C0%B9%FA%D7%A8%D2%B5%BB%A4%CD%F3%CA%F3%B1%EA%B5%E6%2C%CA%E6%BB%BA%CA%BD%C4%FD%BD%BA%C8%ED%B5%E6%C4%A3%C4%E2%CA%D6%CD%F3%B5%C4%D7%D4%C8%BB%C7%FA%CF%DF%BA%CD%D4%CB%B6%AF%A3%AC%B4%B4%D4%EC%BA%CD%BB%BA%B5%C4GelFlex%CA%E6%CA%CA%B5%D8%B4%F8%21&subject=%B1%B4%B6%FB%BD%F0%BB%A4%CD%F3%CA%BD&sign_type=MD5¬ify_url=http%3A%2F%2Fapi.test.alipay.net&out_trade_no=6741334835157966&return_url=http%3A%2F%2Fapi.test.alipay.net%2Fatinterface%2Freceive_return.htm&sign=dc3d42f405d7e738ab35344449e2d9f7&buyer_id=2088002007018955&total_fee=100&service=create_direct_pay_by_user&partner=2088101568338364&seller_id=2088002007018966&payment_type=1&qr_pay_mode=1&_input_charset=gbk
说明:
本样例仅供参考,支付宝网关为:https://mapi.alipay.com/gateway.do
注意:
- 此接口只支持https请求;
- 参数body(商品描述)、subject(商品名称)、extra_common_param(公用回传参数)不能包含特殊字符(如:#、%、&、+)、敏感词汇,也不能使用外国文字(旺旺不支持的外文,如:韩文、泰语、藏文、蒙古文、阿拉伯语);
- 请按照本文档“附录:签名与验签”中的签名方法对输入参数进行签名,该接口请求才能够被支付宝系统接收;
- 此接口支持重复调用,前提是交易基本信息(买家、卖家、交易金额、超时时间等)在多次调用中保持一致,且交易尚未完成支付;
- 配置qr_pay_mode为0或1或3或4的情况下,同步通知地址return_url需要传入商户中间跳转页面,即该页面需要实现让父页面自行跳转的功能,中间页面javascript代码:<script>window.parent.location.href='父页面调整的URL';</script>
页面跳转同步参数说明
支付宝对商户的请求数据处理完成后,会将处理的结果数据通过系统程序控制客户端页面自动跳转的方式通知给商户网站。这些处理结果数据就是页面跳转同步通知参数。
参数 |
参数名称 |
类型(字节长度) |
参数说明 |
是否可为空 |
样例 |
is_success | 成功标识 | String(1) | 表示接口调用是否成功,并不表明业务处理结果。 | 不可空 | T |
sign_type | 签名方式 | String | DSA、RSA、MD5三个值可选,必须大写。 | 不可空 | MD5 |
sign | 签名 | String(32) | 请参见本文档“附录:签名与验签”。 | 不可空 | b1af584504b8e845ebe40b8e0e733729 |
out_trade_no | 商户网站唯一订单号 | String(64) | 对应商户网站的订单系统中的唯一订单号,非支付宝交易号。需保证在商户网站中的唯一性。是请求时对应的参数,原样返回。 | 可空 | 6402757654153618 |
subject | 商品名称 | String(256) | 商品的标题/交易标题/订单标题/订单关键字等。 | 可空 | 手套 |
payment_type | 支付类型 | String(4) | 只支持取值为1(商品购买)。 | 可空 | 1 |
exterface | 接口名称 | String | 标志调用哪个接口返回的链接。 | 可空 | create_direct_pay_by_user |
trade_no | 支付宝交易号 | String(64) | 该交易在支付宝系统中的交易流水号,最长64位,一般28位 | 可空 | 2014040311001004370000361525 |
trade_status | 交易状态 | String |
交易目前所处的状态。成功状态的值只有两个:
|
可空 | TRADE_FINISHED |
notify_id | 通知校验ID | String | 支付宝通知校验ID,商户可以用这个流水号询问支付宝该条通知的合法性。 | 可空 | RqPnCoPT3K9%2Fvwbh3I%2BODmZS9o4qChHwPWbaS7UMBJpUnBJlzg42y9A8gQlzU6m3fOhG |
notify_time | 通知时间 | Date | 通知时间(支付宝时间)。格式为yyyy-MM-dd HH:mm:ss。 | 可空 | 2008-10-23 13:17:39 |
notify_type | 通知类型 | String | 返回通知类型。 | 可空 | trade_status_sync |
seller_email | 卖家支付宝账号 | String(100) | 卖家支付宝账号,可以是Email或手机号码。 | 可空 | chao.chenc1@alipay.com |
buyer_email | 买家支付宝账号 | String(100) | 买家支付宝账号,可以是Email或手机号码。 | 可空 | tstable01@alipay.com |
seller_id | 卖家支付宝账户号 | String(30) | 卖家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 | 可空 | 2088002007018916 |
buyer_id | 买家支付宝账户号 | String(30) | 买家支付宝账号对应的支付宝唯一用户号。以2088开头的纯16位数字。 | 可空 | 2088101000082594 |
total_fee | 交易金额 | Number | 该笔订单的资金总额,单位为RMB-Yuan。取值范围为[0.01,100000000.00],精确到小数点后两位。 | 可空 | 10.00 |
body | 商品描述 | String(1000) | 对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 | 可空 | Hello |
extra_common_param | 公用回传参数 | String | 用于商户回传参数,该值不能包含“=”、“&”等特殊字符。如果用户请求时传递了该参数,则返回给商户时会回传该参数。 | 可空 | 你好,这是测试商户的广告。 |
http://商户自定义地址/return_url.php?is_success=T&sign=b1af584504b8e845ebe40b8e0e733729&sign_type=MD5&body=Hello&buyer_email=xinjie_xj%40163.com&buyer_id=2088101000082594&exterface=create_direct_pay_by_user&out_trade_no=6402757654153618&payment_type=1&seller_email=chao.chenc1%40alipay.com&seller_id=2088002007018916&subject=%E5%A4%96%E9%83%A8FP&total_fee=10.00&trade_no=2014040311001004370000361525&trade_status=TRADE_FINISHED¬ify_id=RqPnCoPT3K9%252Fvwbh3I%252BODmZS9o4qChHwPWbaS7UMBJpUnBJlzg42y9A8gQlzU6m3fOhG¬ify_time=2008-10-23+13%3A17%3A39¬ify_type=trade_status_sync&extra_common_param=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E8%BF%99%E6%98%AF%E6%B5%8B%E8%AF%95%E5%95%86%E6%88%B7%E7%9A%84%E5%B9%BF%E5%91%8A%E3%80%82
说明:
本样例仅供参考,实际网关为商户域名。
页面跳转同步通知页面特性
1. 用户在登录成功后会看到一个支付宝提示登录的页面,该页面会停留几秒,然后会自动跳转回商户指定的同步通知页面(参数return_url)。
2. 该页面中获得参数的方式,需要使用GET方式获取,如request.QueryString(“out_trade_no”)、$_GET[‘out_trade_no’]。后续商户可根据获取的信息作处理,譬如,可以把获取到的token放入session中,以便于后续需要使用到token访问支付宝相应服务时,可以便捷地重用。
3. 该方式仅仅在用户登录完成以后进行自动跳转,因此只会进行一次。
4. 该方式不是支付宝主动去调用商户页面,而是支付宝的程序利用页面自动跳转的函数,使用户的当前页面自动跳转。
5. 该方式可在本机而不是只能在服务器上进行调试。
6. 返回URL只有一分钟的有效期,超过一分钟该链接地址会失效,验证则会失败。
7. 设置页面跳转同步通知页面(return_url)的路径时,不要在页面文件的后面再加上自定义参数。例如:
错误的写法:http://www.alipay.com/alipay/return_url.php?xx=11
正确的写法:http://www.alipay.com/alipay/return_url.php
8. 由于支付宝会对页面跳转同步通知页面(return_url)的域名进行合法有效性校验,因此设置页面跳转同步通知页面(return_url)的路径时,不要设置成本机域名,也不能带有特殊字符(如“!”),如:
错误的写法:
http://localhost/alipay/return_url.php
http://localhost:80/alipay/return_url.php
http://商户自定义地址/alipay/return!url.do
正确的写法:
能够正常访问的域名地址:http://商户自定义地址/alipay/return_url.php
能够正常访问的IP地址:http://121.1.1.255/alipay/return_url.php
服务器异步通知参数说明
支付宝对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。
参数 |
参数名称 |
类型(字节长度) |
参数说明 |
是否可为空 |
样例 |
基本参数 |
|||||
notify_time |
通知时间 |
Date |
通知的发送时间。 格式为yyyy-MM-dd HH:mm:ss。 |
不可空 |
2009-08-12 11:08:32 |
notify_type |
通知类型 |
String |
通知的类型。 |
不可空 |
trade_status_sync |
notify_id |
通知校验ID |
String |
通知校验ID。 |
不可空 |
70fec0c2730b27528665af4517c27b95 |
sign_type |
签名方式 |
String |
DSA、RSA、MD5三个值可选,必须大写。 |
不可空 |
DSA |
sign |
签名 |
String |
请参见本文档“附录:签名与验签”。 |
不可空 |
_p_w_l_h_j0b_gd_aejia7n_ko4_m%2Fu_w_jd3_nx_s_k_mxus9_hoxg_y_r_lunli_pmma29_t_q%3D% 3D |
业务参数 |
|||||
out_trade_no |
商户网站唯一订单号 |
String(64) |
对应商户网站的订单系统中的唯一订单号,非支付宝交易号。 需保证在商户网站中的唯一性。是请求时对应的参数,原样返回。 |
可空 |
3618810634349901 |
subject |
商品名称 |
String(256) |
商品的标题/交易标题/订单标题/订单关键字等。 它在支付宝的交易明细中排在第一列,对于财务对账尤为重要。是请求时对应的参数,原样通知回来。 |
可空 |
phone手机 |
payment_type |
支付类型 |
String(4) |
只支持取值为1(商品购买)。 |
可空 |
1 |
trade_no |
支付宝交易号 |
String(64) |
该交易在支付宝系统中的交易流水号。最长64位。 |
可空 |
2014040311001004370000361525 |
trade_status |
交易状态 |
String |
取值范围请参见交易状态。 |
可空 |
TRADE_FINISHED |
gmt_create |
交易创建时间 |
Date |
该笔交易创建的时间。 格式为yyyy-MM-dd HH:mm:ss。 |
可空 |
2008-10-22 20:49:31 |
gmt_payment |
交易付款时间 |
Date |
该笔交易的买家付款时间。 格式为yyyy-MM-dd HH:mm:ss。 |
可空 |
2008-10-22 20:49:50 |
gmt_close |
交易关闭时间 |
Date |
交易关闭时间。 格式为yyyy-MM-dd HH:mm:ss。 |
可空 |
2008-10-22 20:49:46 |
refund_status |
退款状态 |
String |
取值范围请参见退款状态。 |
可空 |
REFUND_SUCCESS |
gmt_refund |
退款时间 |
Date |
卖家退款的时间,退款通知时会发送。 格式为yyyy-MM-dd HH:mm:ss。 |
可空 |
2008-10-29 19:38:25 |
seller_email |
卖家支付宝账号 |
String(100) |
卖家支付宝账号,可以是email和手机号码。 |
可空 |
chao.chenc1@alipay.com |
buyer_email |
买家支付宝账号 |
String(100) |
买家支付宝账号,可以是Email或手机号码。 |
可空 |
13758698870 |
seller_id |
卖家支付宝账户号 |
String(30) |
卖家支付宝账号对应的支付宝唯一用户号。 以2088开头的纯16位数字。 |
可空 |
2088002007018916 |
buyer_id |
买家支付宝账户号 |
String(30) |
买家支付宝账号对应的支付宝唯一用户号。 以2088开头的纯16位数字。 |
可空 |
2088002007013600 |
price |
商品单价 |
Number |
如果请求时使用的是total_fee,那么price等于total_fee;如果请求时使用的是price,那么对应请求时的price参数,原样通知回来。 |
可空 |
10.00 |
total_fee |
交易金额 |
Number |
该笔订单的总金额。 请求时对应的参数,原样通知回来。 |
可空 |
10.00 |
quantity |
购买数量 |
Number |
如果请求时使用的是total_fee,那么quantity等于1;如果请求时使用的是quantity,那么对应请求时的quantity参数,原样通知回来。 |
可空 |
1 |
body |
商品描述 |
String(1000) |
该笔订单的备注、描述、明细等。 对应请求时的body参数,原样通知回来。 |
可空 |
Hello |
discount |
折扣 |
Number |
支付宝系统会把discount的值加到交易金额上,如果需要折扣,本参数为负数。 |
可空 |
-5 |
is_total_fee_adjust |
是否调整总价 |
String(1) |
该交易是否调整过价格。 |
可空 |
N |
use_coupon |
是否使用红包买家 |
String(1) |
是否在交易过程中使用了红包。 |
可空 |
N |
extra_common_param |
公用回传参数 |
String |
用于商户回传参数,该值不能包含“=”、“&”等特殊字符。 如果用户请求时传递了该参数,则返回给商户时会回传该参数。 |
可空 |
你好,这是测试商户的广告。 |
business_scene |
是否扫码支付 |
String |
回传给商户此标识为qrpay时,表示对应交易为扫码支付。 目前只有qrpay一种回传值。 非扫码支付方式下,目前不会返回该参数。 |
可空 |
qrpay |
http://商户自定义地址/notify_url.php?trade_no=2014040311001004370000361525&out_trade_no=3618810634349901&discount=-5&payment_type=1&subject=iphone%E6%89%8B%E6%9C%BA&body=Hello&price=10.00&quantity=1&total_fee=10.00&trade_status=TRADE_FINISHED&refund_status=REFUND_SUCCESS&seller_email=chao.chenc1%40alipay.com&seller_id=2088002007018916&buyer_id=2088002007013600&buyer_email=13758698870&gmt_create=2008-10-22+20%3A49%3A31&is_total_fee_adjust=N&gmt_payment=2008-10-22+20%3A49%3A50&gmt_close=2008-10-22+20%3A49%3A46&gmt_refund=2008-10-29+19%3A38%3A25&use_coupon=N¬ify_time=2009-08-12+11%3A08%3A32¬ify_type=trade_status_sync¬ify_id=70fec0c2730b27528665af4517c27b95&sign_type=DSA&sign=_p_w_l_h_j0b_gd_aejia7n_ko4_m%252Fu_w_jd3_nx_s_k_mxus9_hoxg_y_r_lunli_pmma29_t_q%253D%253D&extra_common_param=%E4%BD%A0%E5%A5%BD%EF%BC%8C%E8%BF%99%E6%98%AF%E6%B5%8B%E8%AF%95%E5%95%86%E6%88%B7%E7%9A%84%E5%B9%BF%E5%91%8A%E3%80%82
说明
本样例仅供参考,实际网关为商户域名。
服务器异步通知页面特性
- 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
-
支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:
request.Form("out_trade_no")、$_POST['out_trade_no'];
- 支付宝主动发起通知,该方式才会被启用;
- 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);
- 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;
- 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;
-
程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。
一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)
- 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;
- cookies、session等在此页面会失效,即无法获取这些数据;
- 该方式的调试与运行必须在服务器上,即互联网上能访问;
- 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;
- 当商户服务器(如米扑科技)收到支付宝服务器下发的异步通知后,商户服务器处理订单状态并打印出success返回给支付宝服务器时,支付宝服务器异步通知参数notify_id才会失效。也就是说在支付宝发送同一条异步通知时(包含商户并未成功打印出success导致支付宝重发数次通知),服务器异步通知参数notify_id是不变的。
通知触发条件
触发条件名 |
触发条件描述 |
触发条件默认值 |
TRADE_FINISHED |
交易完成 |
true(触发通知) |
TRADE_SUCCESS |
支付成功 |
true(触发通知) |
WAIT_BUYER_PAY |
交易创建 |
false(不触发通知) |
TRADE_CLOSED |
交易关闭 |
false(不触发通知) |
说明:商户可以向支付宝申请配置,是否触发各交易状态下的异步通知。
支付渠道
枚举名称 |
枚举说明 |
directPay |
支付宝账户余额 |
cartoon |
卡通 |
bankPay |
网银 |
cash |
现金 |
creditCardExpress |
信用卡快捷 |
debitCardExpress |
借记卡快捷 |
coupon |
红包 |
point |
积分 |
voucher |
购物券 |
交易状态
枚举名称 |
枚举说明 |
WAIT_BUYER_PAY |
交易创建,等待买家付款。 |
TRADE_CLOSED |
在指定时间段内未支付时关闭的交易; 在交易完成全额退款成功时关闭的交易。 |
TRADE_SUCCESS |
交易成功,且可对该交易做操作,如:多级分润、退款等。 |
TRADE_PENDING |
等待卖家收款(买家付款后,如果卖家账号被冻结)。 |
TRADE_FINISHED |
交易成功且结束,即不可再做任何操作 |
退款状态
枚举名称 |
枚举说明 |
REFUND_SUCCESS |
退款成功: 全额退款情况:trade_status= TRADE_CLOSED,而refund_status=REFUND_SUCCESS 非全额退款情况:trade_status= TRADE_SUCCESS,而refund_status=REFUND_SUCCESS |
REFUND_CLOSED |
退款关闭 |
业务错误码
错误代码(error_code) |
含义 |
SELLER_NOT_IN_SPECIFIED_SELLERS |
抱歉,该收款账户不是指定的收款账户,请确认参数是否正确或咨询您的客户经理。 |
TRADE_SELLER_NOT_MATCH |
抱歉,该笔交易的卖家已不存在,请联系正确的卖家重新创建交易进行付款。 |
TRADE_BUYER_NOT_MATCH |
抱歉,您本次支付使用的账户与原先的不一致,请使用原来的账户,或重新创建交易付款。 |
ILLEGAL_FEE_PARAM |
抱歉,金额传递错误,请确认参数是否正确或咨询您的客户经理。 |
SUBJECT_MUST_NOT_BE_NULL |
商品名不能为空。 |
TRADE_PRICE_NOT_MATCH |
抱歉,该商品的交易单价与原先的不一致,请重新创建交易付款。 |
TRADE_QUANTITY_NOT_MATCH |
抱歉,该商品的购买数量与原先的不一致,请重新创建交易付款。 |
TRADE_TOTALFEE_NOT_MATCH |
抱歉,该商品的交易金额与原先的不一致,请重新创建交易付款。 |
TRADE_NOT_ALLOWED_PAY |
抱歉,您不能进行本次支付,请查看该交易是否已超时或已被关闭等。 |
DIRECT_PAY_WITHOUT_CERT_CLOSE |
未开通非证书余额支付,无法完成支付。 |
FAIL_CREATE_CASHIER_PAY_ORDER |
抱歉,系统异常,无法创建本次收银台支付订单,请稍后再试。 |
ILLEGAL_EXTRA_COMMON_PARAM |
抱歉,接口通用回传参数格式不正确,请联系您的商户。 |
ILLEGAL_PAYMENT_TYPE |
抱歉,接口传递的Payment_type参数错误,请联系您的商户。 |
NOT_SUPPORT_GATEWAY |
抱歉,商户网关配置出错,请联系您的商户。 |
BUYER_SELLER_EQUAL |
抱歉,买家和卖家不能是同一个账户。 |
SELLER_NOT_EXIST |
抱歉,卖家账户经验证不存在,请联系您的商户。 |
ILLEGAL_ARGUMENT |
抱歉,商户传递的接口参数错误,请联系您的商户。 |
TRADE_NOT_FOUND |
根据交易号无法找到交易。 |
TRADE_GOOD_INFO_NOT_FOUND |
根据交易号无法找到交易详情。 |
BUYER_EMAIL_ID_MUST_NULL |
抱歉,该笔交易的买家账户必须为空,请联系您的商户。 |
PRODUCT_NOT_ALLOWED |
您未开通此产品,暂时无法使用本服务。 |
ROYALTY_RECEIVER_NOT_IN_SPECIFIED_ACCOUNTS |
抱歉,分润账号不是指定的分润账户,请确保该分润账户已签署分润协议。 |
ROYALTY_LENGTH_ERROR |
抱歉,分润信息过长,不能超过1000个字符,请检查后重新集成。 |
DEFAULT_BANK_INVALID |
您传递的默认网银参数不在规定的范围内。 |
DIS_NOT_SIGN_PROTOCOL |
抱歉,您的分销商没有与支付宝签约,请联系您的商户。 |
SELF_TIMEOUT_NOT_SUPPORT |
抱歉,商户没有开通自定义超时权限,请联系您的商户。 |
ILLEGAL_OUTTIME_ARGUMENT |
抱歉,自定义超时时间设置错误,请联系您的商户。 |
EBANK_CERDIT_GW_RULE_NOT_OPEN |
信用卡未签约(签约到期)或者接口参数未指定开通信用卡支付。 |
DIRECTIONAL_PAY_FORBIDDEN |
付款受限,请确保收款方有权进行收款。 |
SELLER_ENABLE_STATUS_FORBID |
卖家状态不正常。 |
ROYALTY_SELLER_ENABLE_STATUS_FORBID |
抱歉,卖家暂时无法进行收款操作,请联系您的商户。 |
ROYALTY_SELLER_NOT_CERTIFY |
抱歉,卖家尚未通过认证,不能进行收款,请联系您的商户。 |
ROYALTY_FORAMT_ERROR |
抱歉,接口传递的分润参数格式错误,请检查后重新集成。 |
ROYALTY_TYPE_ERROR |
抱歉,接口传递的分润类型错误,请检查后重新集成。 |
ROYALTY_RECEIVE_EMAIL_NOT_EXIST |
抱歉,分润账户经验证不存在,请联系您的商户。 |
ROYALTY_RECEIVE_EMAIL_NOT_CERTIFY |
抱歉,分润账户经验证未通过人行验证,请联系您的商户。 |
ROYALTY_PAY_EMAIL_NOT_EXIST |
抱歉,分润付款账户经验证不存在,请联系您的商户。 |
TAOBAO_ANTI_PHISHING_CHECK_FAIL |
抱歉,无法付款! 该笔交易可能存在风险,如果您确定本次交易没有问题,请1个小时后再付款。 |
SUBJECT_HAS_FORBIDDENWORD |
抱歉,无法付款! 请联系商户修改商品名称,再重新购买。 |
PAY_CHECK_FAIL |
抱歉,付款失败! 该笔交易可能存在风险。 |
BODY_HAS_FORBIDDENWORD |
抱歉,无法付款! 请联系商户修改商品描述,再重新购买。 |
NEED_CTU_CHECK_PARAMETER_ERROR |
抱歉,您传递的商户可信任参数权限参数错误。 |
NEED_CTU_CHECK_NOT_ALLOWED |
抱歉,商户没有可信任参数校验的权限。 |
BUYER_NOT_EXIST |
抱歉,买家账户经验证不存在。 |
HAS_NO_PRIVILEGE |
你的当前访问记录丢失,请返回商户网站重新发起付款。 |
即时到账有密退款接口
请求参数说明
请求参数是商户在与支付宝进行数据交互时,提供给支付宝的请求数据,以便支付宝根据这些数据进一步处理。
参数 |
参数名称 |
类型(长度范围) |
参数说明 |
是否可为空 |
样例 |
基本参数 |
|||||
service |
接口名称 |
String |
接口名称。 |
不可空 |
refund_fastpay_by_p latform_pwd |
partner |
合作者身份ID |
String(16) |
签约的支付宝账号对应的支付宝唯一用户号。 以2088开头的16位纯数字组成。 |
不可空 |
2088101008267254 |
_input_charset |
参数编码字符集 |
String |
商户网站使用的编码格式,如UTF-8、GBK、GB2312等。 |
不可空 |
GBK |
sign_type |
签名方式 |
String |
DSA、RSA、MD5三个值可选,必须大写。 |
不可空 |
MD5 |
sign |
签名 |
String |
请参见本文档“附录:签名与验签”。 |
不可空 |
tphoyf4aoio5e6zxoaydjevem2c1s1zo |
notify_url |
服务器异步通知页面路径 |
String(200) |
支付宝服务器主动通知商户网站里指定的页面http路径。 |
可空 |
http://api.test.alipay.net/atinterface/receive_notify.htm |
业务参数 |
|||||
seller_email |
卖家支付宝账号 |
String |
登录时,seller_email和seller_user_id两者必填一个。如果两者都填,以seller_user_id为准。 |
不可空 |
Jier1105@alitest.com |
seller_user_id |
卖家用户ID |
String |
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 |
退款请求的明细数据。 格式详情参见下面的“单笔数据集参数说明”。 |
不可空 |
2014040311001004370000361525^5.00^协商退款 |
单笔数据集参数说明
- 单笔数据集格式为:第一笔交易退款数据集#第二笔交易退款数据集#第三笔交易退款数据集…#第N笔交易退款数据集;
- 交易退款数据集的格式为:原付款支付宝交易号^退款总金额^退款理由;
- 不支持退分润功能。
单笔数据集(detail_data)注意事项
- detail_data中的退款笔数总和要等于参数batch_num的值;
- “退款理由”长度不能大于256字节,“退款理由”中不能有“^”、“|”、“$”、“#”等影响detail_data格式的特殊字符;
- detail_data中退款总金额不能大于交易总金额;
- 一笔交易可以多次退款,退款次数最多不能超过99次(第一次退1/10,第二次退1/5,第三次退1/2),需要遵守多次退款的总金额不超过该笔交易付款金额的原则。
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=2014040311001004370000361525%5E5.00%5E%D0%AD%C9%CC%CD%CB%BF%EE&sign_type=MD5&batch_no=201101120001
本样例仅供参考,支付宝网关为:https://mapi.alipay.com/gateway.do说明:
服务器异步通知参数说明
支付宝对商户的请求数据处理完成后,会将处理的结果数据通过服务器主动通知的方式通知给商户网站。这些处理结果数据就是服务器异步通知参数。
参数 |
参数名称 |
类型(长度范围) |
参数说明 |
是否可为空 |
样例 |
基本参数 |
|||||
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 |
请参见本文档“附录:签名与验签”。 |
不可空 |
b7baf9af3c91b37bef4261849aa76281 |
业务参数 |
|||||
batch_no |
退款批次号 |
String |
原请求退款批次号。 |
不可空 |
20060702001 |
success_num |
退款成功总数 |
String |
退交易成功的笔数。 0<= success_num<= 总退款笔数。 |
不可空 |
2 |
result_details |
退款结果明细 |
String |
退款结果明细。
若退款申请提交成功,处理结果会返回“SUCCESS”。 若提交失败,退款的处理结果中会有报错码,参见业务错误码。 |
可空 |
2014040311001004370000361525^80^SUCCESS$jax_chuanhang@alipay.com^2088101003147483^0.01^SUCCESS |
http://商户自定义地址/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=2014040311001004370000361525%5E80%5ESUCCESS
说明:
本样例仅供参考,实际网关为商户域名。
通知触发条件
触发条件名 |
触发条件描述 |
触发条件默认值 |
退款处理结束 |
退款处理结束。 |
true(触发通知) |
服务器异步通知页面特性
- 必须保证服务器异步通知页面(notify_url)上无任何字符,如空格、HTML标签、开发系统自带抛出的异常提示信息等;
-
支付宝是用POST方式发送通知信息,因此该页面中获取参数的方式,如:
request.Form("out_trade_no")、$_POST['out_trade_no'];
- 支付宝主动发起通知,该方式才会被启用;
- 只有在支付宝的交易管理中存在该笔交易,且发生了交易状态的改变,支付宝才会通过该方式发起服务器通知(即时到账中交易状态为“等待买家付款”的状态默认是不会发送通知的);
- 服务器间的交互,不像页面跳转同步通知可以在页面上显示出来,这种交互方式是不可见的;
- 第一次交易状态改变(即时到账中此时交易状态是交易完成)时,不仅页面跳转同步通知页面会启用,而且服务器异步通知页面也会收到支付宝发来的处理结果通知;
- 程序执行完后必须打印输出“success”(不包含引号)。如果商户反馈给支付宝的字符不是success这7个字符,支付宝服务器会不断重发通知,直到超过24小时22分钟。一般情况下,25小时以内完成8次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h);
- 程序执行完成后,该页面不能执行页面跳转。如果执行页面跳转,支付宝会收不到success字符,会被支付宝服务器判定为该页面程序运行出现异常,而重发处理结果通知;
- cookies、session等在此页面会失效,即无法获取这些数据;
- 该方式的调试与运行必须在服务器上,即互联网上能访问;
- 该方式的作用主要防止订单丢失,即页面跳转同步通知没有处理订单更新,它则去处理;
- 当商户收到服务器异步通知并打印出success时,服务器异步通知参数notify_id才会失效。也就是说在支付宝发送同一条异步通知时(包含商户并未成功打印出success导致支付宝重发数次通知),服务器异步通知参数notify_id是不变的。
业务错误码
错误代码(error_code) |
含义 |
ILLEGAL_USER |
用户ID不正确 |
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 |
红包无法部分退款 |
BUYER_ERROR |
因买家支付宝账户问题不允许退款 |
参考推荐:
支付宝即时到账 (官网)
支付宝、财付通、网银、快钱接口的收费费率 (推荐)
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-01-16 08:54:07
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: 支付宝即时到账 (米扑博客)