更新时间:2024-12-25 16:15:47配置项检测工具收藏订阅更新我的文档设置接入检测(即可查看检测结果)若有未通过的接入检测项,接口将无法调通去登录返回文档完成 后,商家/服务商可根据本文指引快速接入 电脑网站支付,完成与支付宝对接的部分,包括支付、退款、关闭交易,下载账单。说明:●旧版本 接口不再维护,若需要从旧版 升级为电脑网站支付,可直接查看本文进行接入。●仅支持自研商家/服务商通过 自研应用 或 第三方应用 代调用方式,调用 api 接入。●支持沙箱调试。1 支付流程1.1 系统流程电脑网站支付的支付接口 (统一收单下单并支付页面接口)调用时序图如下:用户用户商家商家支付宝支付宝1下单1.1调用alipay.trade.page.pay发起支付请求2用户输入用户名、支付密码3登录4选择支付渠道、输入支付密码5确认支付6get请求returnurl,返回同步返回参数sd 支付是否成功以异步通知为准7post请求notifyurl,返回异步返回参数sd 支付是否成功以查询接口返回为准8调用alipay.trade.query查看交易状态8.1返回交易信息" draggable="true">调用流程如下:1商家系统调用 (统一收单下单并支付页面接口)向支付宝发起支付请求,支付宝对商家请求参数进行校验,而后重新定向至用户登录页面。2用户确认支付后,支付宝通过 get 请求 returnurl(商户入参传入),返回同步返回参数。3交易成功后,支付宝通过 post 请求 notifyurl(商户入参传入),返回异步通知参数。4若由于网络等原因,导致商家系统没有收到异步通知,商家可自行调用 (统一收单交易查询接口)查询交易以及支付信息(商家也可以直接调用该查询接口,不需要依赖异步通知)。注意: ●由于同步返回的不可靠性,支付结果必须以异步通知或查询接口返回为准,不能依赖同步跳转。●商家系统接收到异步通知以后,必须通过验签(验证通知中的 sign 参数)来确保支付通知是由支付宝发送的。详细验签规则可查看 。●接收到异步通知并验签通过后,请务必核对通知中的 app_id、out_trade_no、total_amount 等参数值是否与请求中的一致,并根据 trade_status 进行后续业务处理。●在支付宝端,partnerid 与 out_trade_no 唯一对应一笔单据,商家端保证不同次支付 out_trade_no 不可重复;若重复,支付宝会关联到原单据,基本信息一致的情况下会以原单据为准进行支付。1.2 调用示例开放平台提供了支持主流开发语言的 sdk 接入的方式。对于页面跳转类 api,sdk 不会也无法像系统调用类 api 一样自动请求支付宝并获得结果,而是在接受 request 请求对象后,为开发者生成前台页面请求需要的完整 form 表单的 html(包含自动提交脚本),商家直接将这个表单的 string 输出到 http response 中即可。注意:●付款页面生成的付款码每 2 分钟 会自动刷新一次。●电脑网站支付后使用 商家分账 完成分账,查询结果需使用 (统一收单交易查询接口) query_options 传入 trade_settle_info 查询分账信息,不能使用 alipay.trade.order.settle.query(交易分账查询接口)查询。1.2.1 示例代码以 java 语言为例,调用 (统一收单下单并支付页面接口) 的示例代码如下。1.2.2 重要入参说明注意:请严格按照接口文档中的参数入参,传入非接口文档中的参数是无效的,并且可能会导致请求被拦截或其它异常。参数名称参数说明subject必填,商品的标题/交易标题/订单标题/订单关键字等。 不可使用特殊字符,如 /,=,& 等。product_code必填,销售产品码,与支付宝签约的产品码名称。目前电脑支付场景下仅支持 fast_instant_trade_paytotal_amount必填,订单总金额,单位为元,精确到小数点后两位,取值范围为 [0.01,100000000]。金额不能为0。对异步返回结果进行验签的 java 示例代码如下:以 java 语言为例,调用 (统一收单交易查询接口)的示例代码如下:2 退款流程当交易发生之后一段时间内,由于买家或者卖家的原因需要退款时,卖家可以通过退款接口将支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退回到买家账号上。2.1 系统流程商家可调用 (统一收单交易退款查询接口)进行退款,支付宝同步返回退款参数。调用时序图如下: 若退款接口由于网络等原因返回异常,商家可调用退款查询接口 (统一收单交易退款查询接口)查询指定交易的退款信息。支付宝退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。2.2 退款说明●退款周期:12 个月,即交易发生后 12 个月内可发起退款,超过 12 个月则不可发起退款。●退款方式:资金原路返回用户账号。●退款退费:退款时手续费不退回。●一笔退款失败后重新提交,要采用原来的退款单号。●总退款金额不能超过用户实际支付金额。●退款信息以退款接口同步返回或者 (统一收单交易退款查询接口)为准。2.3 调用示例开放平台提供了支持主流开发语言的 sdk 接入的方式,以 java 语言为例,调用 (统一收单交易退款接口)的示例代码如下:2.3.1 退款到银行卡通知退款存在退到银行卡场景下时,支付宝会调用 (收单退款冲退完成通知接口)根据银行回执消息发送退款完成信息至应用网关地址。注意:开发者需登录 进入对应应用详情页,在 开发设置 > 消息服务 > from 平台 中订阅 (收单退款冲退完成通知接口)。消息示例重要参数说明参数名称参数说明trade_no支付宝交易订单号。dback_status银行卡冲退状态。●s - 成功。●f - 失败,银行卡冲退失败,资金自动转入用户支付宝余额。dback_amount银行卡冲退金额。bank_ack_time银行响应时间,格式为 yyyy-mm-dd hh:mm:ss。est_bank_receipt_time预估银行入账时间,格式为 yyyy-mm-dd hh:mm:ss。更多 from 蚂蚁消息详情参见 from 蚂蚁消息服务使用。调用 (统一收单交易退款查询接口)java 示例代码如下:3 关闭交易通常交易关闭是通过 alipay.trade.page.pay 中的超时时间来控制,支付宝也提供给商家 (统一收单交易关闭接口)。若用户一直未支付,商家可以调用该接口关闭指定交易;成功关闭交易后该交易不可支付。3.1 调用流程交易关闭接口的调用时序图 (统一收单交易关闭接口)如下图所示:3.2 调用示例开放平台提供了支持主流开发语言的 sdk 接入的方式,以 java 语言为例,调用 (统一收单交易关闭接口)的示例代码如下:4 对账流程为方便商家快速查账,开放平台支持商家通过 (查询对账单下载地址接口)获取商家离线账单下载地址。4.1 调用流程调用该接口的时序图如下:4.2 调用示例开放平台提供了支持主流开发语言的 sdk 接入的方式,以 java 语言为例,调用 (查询对账单下载地址接口)的示例代码如下:开发者在得到接口返回的账单下载地址(bill_download_url)后还可以下载账单文件,java 示例代码如下:5 沙箱环境接入沙箱环境是开放平台提供给开发者调试接口的环境,详情可查看 沙箱环境。5.1 沙箱接入注意事项●电脑网站支付支持沙箱接入;在沙箱调通接口后,必须在线上进行测试与验收,所有返回码及业务逻辑以线上为准。●电脑网站支付只支持余额支付,不支持银行卡、余额宝等其它凯发k8官方网娱乐官方的支付方式。●支付时,请使用沙箱买家账号支付。●如果扫二维码付款时,请使用沙箱支付宝客户端扫码付款。