为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AliPay支付宝标准快速付款接口文档

2020-07-23 20页 doc 478KB 4阅读

用户头像 个人认证

百里登峰

暂无简介

举报
AliPay支付宝标准快速付款接口文档纯网关接口文档副标题:网银直连修订历史 版本号 作者 修订章节 修订原因 修订日期 V1.0 技术支持团队 全版修改 加强文档结构的合理性 2008-11-17 V1.1 甘宁 订正部分接口参数和描述信息,例如:即时支付支持错误通知地址(error_notify_url)更新签约接口内容 接口升级、增加查询签约接口 2009-8-2 V1.2 甘宁 重新整理流程以及文档说明 使文档阅读性更强 2009-12-8 V1.3 甘宁 增加“公用回传参数” 满足用户自定义参数的要求 2010-3-18 V1.4...
AliPay支付宝标准快速付款接口文档
纯网关接口文档副标题:网银直连修订历史 版本号 作者 修订章节 修订原因 修订日期 V1.0 技术支持团队 全版修改 加强文档结构的合理性 2008-11-17 V1.1 甘宁 订正部分接口参数和描述信息,例如:即时支付支持错误通知地址(error_notify_url)更新签约接口 接口升级、增加查询签约接口 2009-8-2 V1.2 甘宁 重新整理流程以及文档说明 使文档阅读性更强 2009-12-8 V1.3 甘宁 增加“公用回传参数” 满足用户自定义参数的要求 2010-3-18 V1.4 甘宁 通知中增加网银流水 满足商户网银支付需求 2010-3-29 V1.5 甘宁 请求参数列 支持自定义超时可以使用时间区间 2010-9-13 V1.5.1 甘宁 增加4.3.2的信用卡简码 信用卡大额支付也支持纯网关 2010-10-26说明:本接口将支付宝即时到帐接口用作纯网关的功能做详细介绍。在集成时处理机制和原有支付宝即时到帐一样,请求时必须增加默认支付方式(paymethod)和默认网银(defaultbank)2个参数目录31前言31.1概述31.2术语32接口功能及参数介绍32.1即时到账接口(适用于纯网银)32.1.1功能描述42.1.2交互流程42.1.3交互模式42.1.4接口详细说明112.1.5接口注意事项112.1.6接口错误代码列表133签名通用策略133.1安全方面CheckList133.2签名方面133.2.1签名机制133.2.24.2.2签名方式143.3其他方面144附录144.1接口通用机制144.1.1系统调用144.1.2页面跳转164.1.3支付宝主动通知处理流程174.1.4通知验证184.2数字签名构造184.2.1请求参数构造214.3公用枚举表214.3.1通知返回结果枚举214.3.2通用交易状态枚举表224.3.1银行列表234.3.2信用卡大额银行列表234.3.3订单状态列表244.4FAQ(常见问题的的解答)1前言1.1概述本接口主要用在外部集成网银直连(纯网关)功能1.2术语 名称 说明 外部商户、合作伙伴、商户 和支付宝进行业务合作的商户 通知页 参数名称Notify_url,所指定的互联网HTTP地址,当代扣完成之后,支付宝发送信息到该页面去,即调用该页面,该页面中的程序自动运行,并判断请求与处理获取到的信息 合作伙伴ID 签约后,为商家自动分配的唯一编号。 分润 分润指将某一部分费用分给其它的帐户 页面跳转 执行操作后跳转到其它页面2接口功能及参数介绍2.1标准即时到账接口(适用于纯网银)2.1.1功能描述调用此接口,根据用户传过来的参数创建交易,买家再付款。目前该接口的交易全部为即时到帐纯网银支付接口,即只要买家一付款,钱就会从买家银行卡转到卖家的支付宝账号。同时该接口还支持分润,商家传过来分润的账号和金额,系统会自动打款到该账号上。2.1.2交互流程2.1.3交互模式请求/响应交互模式,页面跳转2.1.4接口详细说明2.1.4.1请求参数列表特别注意:a.)此接口只支持https请求,支付宝是以https进行验证b.)按照支付宝外部请求接口概述中要求的签名方式,对输入参数进行签名,该接口请求才能够被支付宝系统接收。c.)本接口支持重复调用,但是提交数据必须一样才可以。d.)在请求时必须增加默认支付方式和默认网银2个参数 字段名 变量名 类型 说明 可空 参数 接口名称 service String create_direct_pay_by_user N 合作伙伴ID partner String(16) 合作伙伴在支付宝的用户ID与支付宝签约后自动生成 N 通知URL notify_url URL(String(190)) 针对该交易的交易状态同步通知接收URL。 N 返回URL return_url URL 结果返回URL,仅适用于立即返回处理结果的接口。支付宝处理完请求后,立即将处理结果返回给这个URL。 N 错误通知地址(需要支付宝功能人员开通) error_notify_url URL(String(190)) 如果在交易过程中出错(如签名错误等),则通过此URL将错误码返回给合作伙伴系统 Y 签名 sign String 见签名机制,MD5加密算法后得出的结果 N 签名方式 sign_type String 见签名方式,现今默认是MD5加密,无需更改该参数的值 N 参数编码字符集 _input_charset String(默认为GBK) 合作伙伴系统与支付宝系统之间交互信息时使用的编码字符集。合作伙伴可以通过该参数指定使用何种字符集对传递参数进行编码。同时,支付宝系统也会使用该字符集对返回参数或通知参数进行编码。注:该参数必须在queryString中传递,不论使用的是POST还是GET方式发送请求。如:http://www.alipay.com/cooperate/gateway.do?_input_charset=utf-8 N 业务参数 商品展示网址 show_url String(400) 点击商品链接后跳转的页面 Y 商品名称 subject String(256) 商品的标题 N 商品描述 body String(1000) 商品的具体描述,如果是多种商品,请将商品描述字符串累加传给body Y 外部交易号 out_trade_no String(64) 合作伙伴交易号(确保在合作伙伴系统中唯一) N 商品单价 price Number(13,2) price:单位为RMBYuan0.01~100000000.00total_fee:单位为RMBYuan0.01~100000000.00quantity:0<quantity<1000000规则:1.如果是多个商品可以汇总后传入,这个时候商品数量默认为12.总价和单价不可以同时出现3.如果使用总价total_fee,则数量为quantity=1.3.如果使用单价price,则商品数量quantity传递实际商品数量 N 交易金额 total_fee Number(13,2) 购买数量 quantity Number(6,0) 支付类型 payment_type String(4) 默认为:1(商品购买); N 默认支付方式 paymethod String bankPay(网银) N 默认网银 defaultbank String 见常见银行列表 N 卖家Email seller_email String(100) 卖家在支付宝的注册Email或注册ID,两者任何一个。 N 卖家ID seller_id String(16) 提成类型 royalty_type String(2) 目前只支持一种类型:卖家给第三方提成(目前参数=10) Y 提成信息集 royalty_parameters String(500) 信息格式下面两种都可:1、收款方Email_1^金额^备注|付款方Email^收款方Email_2^金额^备注2、收款方Email_1^金额^备注|收款方Email_2^金额^备注3.(属于多级分润)收款方Email_1^金额^备注|收款方Email_1^收款方Email_2^金额^备注如有多条则用“|”隔开,最多不能超过10条,备注最多1000个字符,即500个汉字,详见“接口注意事项” Y 超时时间 it_b_pay String(3) 商户开通自定义超时功能才有用(支付宝控制权限),定义该交易的超时时间,m表示分钟,h表示小时,d表示天,c表示当天。商户如果需要改功能,需要告知配置的时间点或者区间,有支付宝技术支持配置。例如:1m~15d表示在1分钟和15天之内任何一个时间都可以。备注:默认15d关闭交易。当天理论上是当天的0点后关闭,但是由于是定时任务可能有所延迟。 Y 公用回传参数 extra_common_param String(200) 用于商户回传参数,该值不能包含=&等特殊字符。如果用户请求时传递了该参数,则返回给商户时会回传该参数. Y一个完整的支付接入请求实例: https://www.alipay.com/cooperate/gateway.do?body=支付宝支付&defaultbank=CMB&notify_url=http://wangjinmin.vip1.es163.net/ganning/asp_bank_before/Alipay_Notify.asp&out_trade_no=2009128201522&partner=208810156834***5&payment_type=1&paymethod=bankPay&return_url=http://wangjinmin.vip1.es163.net/ganning/asp_bank_before/return_Alipay_Notify.asp&seller_email=gwl25@126.com&service=create_direct_pay_by_user&subject=测试商品&total_fee=100&sign=f67dd8e2c2bc26e4bb137be0e32f0cbc&sign_type=MD52.1.4.2返回参数列表此接口有两种返回方式:注意:选择具体网银支付方法,进入网银支付页面后才能创建交易,支付完成才返回通知。需要强调的是部分网银可能不支持支付完成及时跳转,所以商户最好在异步通知中做数据处理或者2个返回处理都集成,增加订单重复接受即可A.(同步通知):系统根据执行的结果将相关订单信息返回(只做返回不需要商户和支付宝系统交互)输出参数列表 字段名 变量名 类型 说明 可空 基本信息 是否成功 is_success String(1) 表示该次操作是否成功 N 签名 sign String(32) 见HTTP参数签名机制,该参数需要获取做签名校验。 N 签名类型 sign_type String 见签名方式 N 业务参数 接口名称 exterface String 使用支付宝的服务接口名称,用此参数可以确定是支付宝的服务 Y 通知时间 notify_time Timestamp 通知时间(支付宝时间),格式:YYYY-MM-DDhh:mm:ss Y 通知ID notify_id String 支付宝通知流水号,合作伙伴可以用这个流水号询问支付宝该条通知的合法性 Y 通知类型 notify_type String trade_status_sync Y 支付宝交易号 trade_no String(16) 该交易在支付宝系统中的交易流水号 Y 支付类型 payment_type String(4) 值为1:商品购买 Y 外部交易号 out_trade_no String(64) 该交易商户提交给支付宝的的交易流水号 Y 商品描述 body String(400) 商品描述 Y 商品名称 subject String(256) 商品名称 Y 总价 total_fee Number(13,2) 总价 Y 买家Email buyer_email String(100) 买家Email Y 买家ID buyer_id String(30) 买家ID Y 卖家Email seller_email String(100) 卖家Email Y 卖家ID seller_id String(30) 卖家ID Y 交易状态 trade_status String 见交易状态枚举表 Y 公用回传参数 extra_common_param String 用于商户回传参数,该值不能包含=&等特殊字符。如果用户请求时传递了该参数,则返回给商户时会回传该参数. Y 网银流水号 bank_seq_no String(20) 开通了纯网关和伪网关的商户,在交易成功后可以返回网银流水。其他不返回该值。 YB.异步通知(即notify_url通知):支付宝系统根据商户传入的notify_url,定时通知执行结果返回给商户,若通知后没有获取商户返回的success支付宝会重复多次执行通知。输出参数列表 字段名 变量名 类型 说明 可空 通知类型 notify_type String trade_status_sync N 通知ID notify_id String 支付宝通知流水号,合作伙伴可以用这个流水号询问支付宝该条通知的合法性 N 通知时间 notify_time Timestamp 通知时间(支付宝时间),格式:YYYY-MM-DDhh:mm:ss N 签名 sign String 见签名机制,该参数需要获取做签名校验。 N 签名方式 sign_type String 见签名方式 N 订单信息: 支付宝交易号 trade_no String(16) 该交易在支付宝系统中的交易流水号 Y 外部交易号 out_trade_no String(64) 该交易在合作伙伴系统的流水号 Y 折扣 discount Number(13,2) Y 支付类型 payment_type String(4) 1 Y 商品名称 subject String(256) Y 商品描述 body String(400) Y 商品单价 price Number(13,2) 单位为RMBYuan0.01~100000000.00 Y 购买数量 quantity Number(6,0) >0 Y 交易金额 total_fee Number(13,2) 单位为RMBYuan0.01~1000000.00 Y 是否调整总价 is_total_fee_adjust String(1) 该交易是否调整过价格 Y 交易创建时间 gmt_create Timestamp 该笔交易创建的时间 Y 交易付款时间 gmt_payment Timestamp 该交易买家的付款时间 Y 交易关闭时间 gmt_close Timestamp 交易关闭时间 Y 退款时间 gmt_refund Timestamp 卖家退款的时间,退款通知时会发送 Y 公用回传参数 extra_common_param String 用于商户回传参数,该值不能包含=&等特殊字符。如果用户请求时传递了该参数,则返回给商户时会回传该参数. Y 网银流水号 bank_seq_no String(20) 开通了纯网关和伪网关的商户,在交易成功后可以返回网银流水。备注:需要支付宝技术支持人员开启 Y 交易状态信息: 交易状态 trade_status String 见交易状态枚举表 Y 退款状态 refund_status String 见交易状态枚举表 Y 买家卖家信息: 卖家Email seller_email String(100) 卖家Email Y 卖家ID seller_id String(30) 卖家ID Y 买家ID buyer_id String(30) 买家Email Y 买家Email buyer_email String(100) 买家ID Y 是否使用红包 use_coupon String(1) 买家是否在交易过程中使用了红包 Y 错误通知参数信息(需要在传入参数增加错误通知地址): 错误代码 error_code String( 说明接口调用过程中的出错信息 N2.1.5接口注意事项·您需使用HTTPS协义,支付宝是以HTTPS的形式进行通知·请按照支付宝外部请求接口概述中要求的签名方式,对输入参数进行签名,该接口请求才能够被支付宝系统接收·该接口支持重复调用,即:一笔订单可以重新支付,但是前提是这笔订单的信息和原来信息一样,否则会报订单号重复·处理支付宝的返回信息可以异步处理也可以同步处理,前提是防止订单重复接收·提成数据集:1.收款方Email_1^金额^备注|付款方Email^收款方Email_2^金额^备注例如:gwl251@163.com^0.02^分润1|gwl251@126.com^gwl061@163.com^0.01^分润22.收款方Email_1^金额^备注|收款方Email_2^金额^备注例如:gwl251@163.com^0.02^分润1|gwl061@163.com^0.01^分润23.收款方Email_1^金额^备注|收款方Email_1^收款方Email_2^金额^备注例如:gwl251@163.com^0.02^分润1|gwl251@163.com^gwl061@163.com^0.01^分润22.1.6接口错误代码列表 错误代码(error_code) 说明 ILLEGAL_SIGN 签名验证出错 ILLEGAL_ARGUMENT 参数不正确 HAS_NO_PRIVILEGE 没有权限访问该服务 ILLEGAL_SERVICE Service参数不正确 ILLEGAL_PARTNER 商户ID不正确 HAS_NO_PUBLICKEY 没有上传公钥 USER_NOT_EXIST 会员不存在 OUT_TRADE_NO_EXIST 外部交易号已经存在 TRADE_NOT_EXIST 交易不存在 ILLEGAL_PAYMENT_TYPE 无效支付类型,需要联系支付宝技术支持工程师处理 BUYER_NOT_EXIST 买家不存在 SELLER_NOT_EXIST 卖家不存在 BUYER_SELLER_EQUAL 买家、卖家是同一帐户 ILLEGAL_SIGN_TYPE 签名类型不正确 COMMISION_ID_NOT_EXIST 佣金收取帐户不存在 COMMISION_SELLER_DUPLICATE 收取佣金帐户和卖家是同一帐户 COMMISION_FEE_OUT_OF_RANGE 佣金金额超出范围 ILLEGAL_LOGISTICS_FORMAT 无效物流格式 TOTAL_FEE_LESSEQUAL_ZERO 交易总金额小于等于0 TOTAL_FEE_OUT_OF_RANGE 交易总金额超出范围 ILLEGAL_FEE_PARAM 非法交易金额格式(参考单价、总价、数量三个组合规则) DONATE_GREATER_THAN_MAX 小额捐赠总金额超出最大值限制 DIRECT_PAY_AMOUNT_OUT_OF_RANGE 快速付款交易总金额超出最大值限制 DIGITAL_FEE_GREATER_THAN_MAX 虚拟物品交易总金额超出最大值限制 SELF_TIMEOUT_NOT_SUPPORT 不支持自定义超时 COMMISION_NOT_SUPPORT 不支持佣金 VIRTUAL_NOT_SUPPORT 不支持虚拟发货方式 ILLEGAL_CHARSET 字符集不合法 ROYALTY_SELLER_ENABLE_STATUS_FORBID 有提成情况下,卖家状态不正常 ROYALTY_SELLER_NOT_CERTIFY 有提成情况下,卖家未通过认证 ROYALTY_FORAMT_ERROR 提成信息错误,请检查后重新集成 ROYALTY_TYPE_ERROR 提成类型不支持,请检查后重新集成 ROYALTY_PAY_EMAIL_NOT_EXIST 提成付款帐户不存在 ROYALTY_RECEIVE_EMAIL_NOT_EXIST 提成收款帐户不存在 DEFAULT_BANK_MUST_NOT_NULL 默认网银不能为空 LLEGAL_PAYMENT_TYPE 错误的Payment_type参数 ILLEGAL_OUTTIME_ARGUMENT 自定义超时参数错误 CANT_CREDIT_PAY 不能使用信用支付 TRADE_NOT_ALLOWED_PAY 交易不允许付款 NAVIGATION_INCOME_OF_ROYALTY_ACCOUNT 在提成情况下的多级分润,二次分润帐户次序问题或者分润时没有预留支付宝服务费3签名通用策略3.1安全方面CheckLista从集成后的系统健壮性考虑,收到支付宝发出的通知后,合作伙伴系统须判断接收到的交易状态、交易金额是否与自己系统中的参数对应,并处理这些数据信息,使网站内的交易信息与支付宝内的交易信息保持一致,可防止掉单情况出现。如果不判断,存在潜在的风险,合作伙伴自行承担因此而产生的所有损失。3.2签名方面3.2.1签名机制a没有值的参数无需传递,也无需包含到待签名数据中。b签名时将字符转变成字节流时指定的字符集要与_input_charset保持一致。c如果传递了_input_charset参数,那么这个参数也应该包含在待签名数据中。d根据HTTP协议要求,传递参数的值中如果存在特殊字符(如:&、@等),那么该值需要做URLEncoding,这样请求接受方才能接受到正确的参数值。这种情况下,做签名时使用的应该是原生值而不是encoding之后的值。例如:会员查询接口示例中待签名数据是email=test@msn.com&partner=2088006300000000&service=test,而不是email=test%40msn.com&partner=2088006300000000&service=test。3.2.24.2.2签名方式按照sign_type参数指定的签名算法对待签名数据进行签名【参见:数字签名构造】3.3其他方面1)您必需使用HTTPS协义,支付宝是以HTTPS的形式进行通知2)请按照支付宝外部请求接口概述中要求的签名方式,对输入参数进行签名,该接口请求才能够被支付宝系统接收3)如果设置了notify_url,支付宝会发一条通知到notify_url对应的站点4)通知URL不要如此设置:http://www.xxx.com/alipay/notify_url.asp?id=xxx,即不要带自加的自定义参数,这会导致通知返回时判断失败。4附录4.1接口通用机制4.1.1系统调用顾名思义,这类接口是为合作伙伴系统获得支付宝系统信息提供服务的,是一种系统间的调用接口。系统调用示意图4.1.2页面跳转顾名思义,这类接口都是一些有页面操作的接口。通常是用户在合作伙伴页面执行部分操作,然后跳转到支付宝系统记录订单信息及时再转入网银系统页面完成整个操作。有的甚至可能最后还要再跳回到合作伙伴的下一个页面,继续完成整个操作。根据处理结果的返回方式,又分为:·立即返回处理结果,即用户在网银系统页面完成操作后,支付宝将处理结果立即返回给合作伙伴的下一步操作页面,让用户继续完成真个操作流程。所以,调用这类接口时,必须传递参数return_url(即合作伙伴的下一个操作页面)。立即返回(页面跳转)示意图·异步返回处理结果,即用户从合作伙伴页面跳转到网银支付页面后(支付宝先做记录),在网银系统完成最后操作,用户不用再回到合作作伙伴页面。这类接口通常是通过通知接口异步获得处理结果。如果需要异步返回结果,那么必须传递notify_url参数,以指定通知返回的地址。如果不需要异步返回结果,那么可以不用传递notify_url参数。(具体流程可以参考:支付宝主动通知处理流程)页面跳转(通过通知接口返回结果)示意图4.1.3支付宝主动通知处理流程1.支付宝平台系统向外部商户系统发出通知,即访问外部商户提供的通知接收URL(参数notify_url)。2.外部商户系统接到通知请求,通过notify_id询问支付宝平台系统这个通知的真实性,通知验证。3.支付宝平台系统判断通知是否是自己发送,如果是返回true,否则返回false。4.商户系统得到支付宝平台系统的确认后,对通知进行处理。处理完毕后,返回结果给支付宝平台系统,处理结果的值见附件:通知返回结果枚举。5.支付宝平台系统处理商户系统返回的处理结果。4.1.4通知验证从系统健康性角度考虑,在接收到支付宝平台系统通知以后,验证支付宝的系统通知的正确性(合法性)是非常有必要的。强烈建议外部商户系统加入此应用。了保证该接口被合法利用,商户系统只能查找1分钟之内(目前为1分钟,以后若有调整,恕不另行通知)的通知。传递的参数格式: 通知验证 字段名 变量名 类型 说明 可空 样例 接口名称 service String customer_unsign N trade_status_sync 外部商户 partner String(16) 外部商户在支付宝的用户ID N 通知ID notify_id String 支付宝发送的通知ID N ·基于HTTPS协议的通知验证接口程序在使用时按照以下要求发起一个HTTPS请求,获取该请求的结果即可,所有可能出现的结果见以下的输出参数表,这种验证通知的方式需要网站支持HTTPS访问,若网站不支持https的访问,可以使用另外一种验证方式:基于HTTP协议的通知验证接口。接入URL: https://www.alipay.com/cooperate/gateway.do一个完整的验证请求实例:https://www.alipay.com/cooperate/gateway.do?service=customer_unsign&partner=1234567890&notify_id=abcdefghijklmnopqrst·基于HTTP协议的通知验证接口程序在使用时按照以下要求发起一个HTTP请求,获取该请求的结果即可,所有可能出现的结果见以下的输出参数表。接入URL: http://notify.alipay.com/trade/notify_query.do一个完整的验证请求实例:http://notify.alipay.com/trade/notify_query.do?partner=1234567890&notify_id=abcdefghijklmnopqrst通知验证接口输出参数: 输出内容 说明 可能的原因 invalid 传入的参数无效 查找参数格式 true 验证通过 false 验证失败 查找是否由于sign和mysign不相等引起的1分钟内失效的问题4.2数字签名构造4.2.1请求参数构造为了确保数据传输过程中的数据真实性和完整性,我们需要对数据进行签名校验。HTTP请求中传递的所有参数(除sign和sign_type以外)按照参数名称字符升序的顺序串联起来(如:p1=v1&p2=v2&p3=v3),构成待签名数据。按照sign_type指定的方式对待签名数据进行签名。例如:调用某接口需要以下参数:service=cae_charge_agentpartner=2088006300000000email=test@msn.com那么待签名数据就是:email=test@msn.com&partner=2088006300000000&service=cae_charge_agent。4.2.1.1签名算法对比 算法功能 MD5 DSA RSA 防篡改 √ √ √ 防抵赖 × √ √ 加密 × × √ 电子签名法是否承认 × √ √4.2.1.2MD5算法构造定义:MD5是一种摘要生成算法,本来是不能用于签名的。但是,通过在待签名数据之后加上一串私密内容(指令发送、接收双发事先规定好的,这里我们称其为签名密钥),就可以用于签名了。使用这种算法签名只能起到防数据篡改的功能,不能起到签名防抵赖的功能,因为双方都知道签名密钥例如:待签名数据+securityCode值(支付宝为合作伙伴颁发的安全校验码)的MD5摘要作为签名。例如:安全校验码是mysecurityCode,那么前面会员查询接口示例的待签名数据就是:email=test@msn.com&partner=2088006300000000&service=user_querymysecurityCode。4.2.1.3DSA算法构造定义:DSA是一种非对称的签名算法,即签名密钥(私钥)与验签名密钥(公钥)是不一样的,私钥用于签名,公钥用于验签名。使用这种算法签名在起到防数据篡改功能的同时,还可以起到防抵赖的作用,因为私用只有签名者知道。例如:合作伙伴发送请求时,使用自己的密钥对待签名数据进行DSA签名,支付宝使用合作伙伴的公钥进行校验;支付宝返回数据时,使用支付宝的密钥对待签名数据进行DSA签名,合作伙伴使用支付宝的公钥进行校验。DSA公私钥可以使用OpenSSL生成,如下:1.生成DSA参数openssl>dsaparam-outdsa_param.pem10242.生成私钥openssl>gendsa-outdsa_private_key.pemdsa_param.pem3.生成公钥openssl>dsa-indsa_private_key.pem-pubout-outdsa_public_key.pem4.2.1.4RSA算法构造定义:RSA也是一种非对称算法,同时,它还是一种加密算法,使用方法跟DSA签名算法类似1.RSA密钥生成命令生成RSA私钥openssl>genrsa-outrsa_private_key.pem1024生成RSA公钥openssl>rsa-inrsa_private_key.pem-pubout-outrsa_public_key.pem将RSA私钥转换成PKCS8格式openssl>pkcs8-topk8-informPEM-inrsa_private_key.pem-outformPEM-nocrypt2.签名/验签名命令RSA签名openssl>sha1-signrsa_private_key.pem-outrsasign.binplaintext.txtRSA验签名openssl>sha1-verifyrsa_public_key.pem-signaturersasign.binplaintext.txt4.3公用枚举表4.3.1通知返回结果枚举 返回结果 结果说明 success 处理成功,结束发送 fail 处理失败,重新发送(支付宝平台系统会在24小时内分6-10次发送客户信息,直到接受到外部商户发送的success)注意:不能包含任何其他的HTML脚本语言,否则支付宝接受数据会收到影响4.3.2通用交易状态枚举表A.正常交易状态枚举: 交易状态列表值(变量值:trade_status) 说明 WAIT_BUYER_PAY 交易创建 TRADE_FINISHED ◆支付成功,标准即时到账成功状态 TRADE_SUCCESS ◆支付成功,机票行业单笔退款成功(没有全部退完) TRADE_CLOSED 交易关闭B.退款交易状态枚举: 状态代码(变量值:refund_status) 状态名称 REFUND_SUCCESS ◆退款成功 REFUND_CLOSED 退款关闭 备注:如果在支付宝平台操作退款,交易状态(trade_status)会出现2中情况:1.不是全额退款,交易成功状态变成TRADE_SUCCESS,增加一个退款状态refund_status=REFUND_SUCCESS2.全额退款,交易成功状态变成TRADE_CLOSED,增加一个退款状态refund_status=REFUND_SUCCESS。4.3.3银行列表 银行简码 银行名称 ICBCBTB 中国工商银行(B2B) ABCBTB 中国农业银行(B2B) SPDBB2B 上海浦东发展银行(B2B) CCBB2B 中国建设银行(B2B) BOCB2C 中国银行 ICBCB2C 中国工商银行 CMB 招商银行 CCB 中国建设银行 ABC 中国农业银行 SPDB 上海浦东发展银行 CIB 兴业银行 GDB 广东发展银行 SDB  深圳发展银行 CMBC 中国民生银行 COMM 交通银行 CITIC 中信银行 HZCBB2C  杭州银行 CEBBANK 中国光大银行 SHBANK 上海银行 NBBANK  宁波银行 SPABANK 平安银行 bjbank101 北京农村商业银行 备注:如果没有需要网银简码,可以询问支付宝技术支持工程师,更多网银更新中。4.3.4纯借记卡银行列表 银行简码 银行名称 CMB-DEBIT 招商银行 CCB-DEBIT 中国建设银行 ICBC-DEBIT 中国工商银行 COMM-DEBIT 交通银行 GDB-DEBIT 广东发展银行 BOC-DEBIT 中国银行 CEB-DEBIT 中国光大银行 SPDB-DEBIT 上海浦东发展银行 PSBC-DEBIT 中国邮政储蓄银行 备注:其他银行陆续增加中。4.3.5信用卡大额银行列表 银行简码 银行名称 icbc301 中国工商银行 ccb301 中国建设银行 cmb301 招商银行 boc301 中国银行  comm301 交通银行 gdb301 广东发展银行  cib301 兴业银行 ceb301 中国光大银行 spabank301 平安银行 citic302 中信银行 spdb301 浦发银行 shbank301 上海银行 备注:其他银行陆续增加中。4.3.6订单状态列表 订单状态表: 订单状态 值 初始 I 成功 S 失败 F 冲正 P 被冲正 N4.4FAQ(常见问题的的解答)1.问:我运行程序后怎么一直报错误代码:ILLEGAL_SIGN?答:如果一直报ILLEGAL_SIGN(签名错误),请首先检查程序中传给支付宝的参数有没有存在空值;然后再检查subject和body有没有特殊的字符。具体可以连接这个网址查询:http://help.alipay.com/support/index.htm2.问:怎么一直报HAS_NO_PRIVILEGE?答:报这个错误,说明您目前没有使用该服务的权限。遇到这个错误:a.)要确定您的合同是在生效期内并且有这个服务(譬如:即时支付的服务)。b.)将出现错误的URL(地址栏的地址)粘贴出来,看看partner和service是不是这个对应的服务参数3.问:我怎么接受不到支付宝返回的信息?答:如果没有接收到支付宝返回的信息,A.)return_url和notify_url的路径B.)检查并输出sign、mysign和responseTxt的值;对于同步(return_url)返回是可见的并且在付款成功才会跳转,并且只跳转一次,调试起来相对简单;异步(notify_url)返回处理则需要在异步处理页面做日志记录或者将获取信息写进数据库,以检查问题所在4.问:我怎么得到合作者身份(partner)和安全校验码(key)?答:您可以登陆签约的支付宝账户-(点击“商家服务”可看到合作者身份,安全校验码需要支付密码才可以看到5.问:我测试的时候怎么sign和mysign一直不相等或者responseTXT?答:(1)SIGN与MYSIGN不等,responseTxt为invalid命令参数不对,该错误是由于合作伙伴ID(parnterID)与安全校验码(key)未填,或填错导致;还有可能是没有获取notify_id导致(2)SIGN与MYSIGN相等,responseTxt为false,是由于服务器、端口等因素导致,这时请检查a防火墙是否屏蔽支付宝的IP(支付宝所使用的IP地址是:121.0.26.11,范围:121.0.26.0~255\121.0.27.0-255;支付宝通知信息的IP地址:121.0.26.1和121.0.26.2,端口:80或者443)b端口80或者443端口开放没有或者被其他服务占用c以上如果都没有问题,可能会是网络验证超时导致(支付宝验证时间是1分钟,SIGN与MYSIGN不等会导致超时),需要等待网络稳定再确定问题(3)SIGN与MYSIGN相等,responseTxt为空,这中情况偶尔会出现,可能是由于返回处理页面的notify_id值为空导致6.问:关于客户服务器搬迁,变动服务器ip,对支付的影响和处理答:如果客户网站服务器搬迁,会改变服务器ip。会造成支付宝交易通知无法找到对应关系,那么我们建议(1)可以变更IP的同时将调取接口中的异步通知域名更成IP地址,等支付宝周三凌晨刷新后更换成域名(2)可以在支付宝每周三凌晨刷新前更换。(3)客户网站确认要搬迁变动ip的前提,请先停止支付宝支付二天,等DNS更新成功,在开启支付宝支付,否则会造成搬迁中下的订单notifyurl无法访问到指定的ip地址。造成掉单现象。7.问:同步返回(return_url)和异步返回(notify_url)的区别?答:(1)同步返回处理(return_url):是一种可视化的返回,ie页面跳转通知,只要支付成功,支付宝通过get方式跳转到这个地址,并且带有参数给这个页面。客户获取信息受到买家操作的影响。如果买家支付完成后客户服务器响应比较慢,买家在显示支付宝提示的“即时到账支付成功“时关闭页面,那么客户网站是获取不到信息,我们这边称为”掉单“。而且这个返回处理是一次性调取,即支付成功后才调取同步返回处理。(2)异步返回处理(notify_url):它的数据交互是通过服务器间进行数据交互,服务器post消息到异步返回处理页面,需要客户技术在异步返回处理页面处理相关的数据处理,然后每一步操作都要返回给支付宝success(不能包含其他的HTML脚本语言,不可以做页面跳转。),这个返回处理如果集成OK,那么基本不会出现掉单,因为支付宝会在24小时之内分6~10次将订单信息返回个给客户网站,直到支付宝捕获success。精品资料网(http://)成立于2004年,专注于企业管理培训。提供60万企业管理资料下载,详情查看:http:///map.htm提供5万集管理视频课程下载,详情查看:http:///zz/提供2万GB高清管理视频课程硬盘拷贝,详情查看:http:///shop/2万GB高清管理视频课程目录下载:http:///12000GB.rar高清课程可提供免费体验,如有需要请于我们联系。咨询电话:020-39603888值班手机:13726708999网站网址:
/
本文档为【AliPay支付宝标准快速付款接口文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索