已更新更新时间:2024-12-17 15:45:58配置项检测工具收藏订阅更新我的文档设置接入检测(即可查看检测结果)若有未通过的接入检测项,接口将无法调通去登录返回文档完成 后,开发者可根据本文指引快速集成 jsapi支付 功能。说明:●jsapi支付 产品支持自研商家/服务商通过 自研应用 或 第三方应用 代调用方式,调用 api 接入。●jsapi支付 产品支持沙箱调试。接口调用调用流程图发送订单信息开发者可在小程序端调用 my.request 接口连接到商家服务端,发送用户订单数据至服务端。 示例代码创建交易订单在服务端调用 ,获得支付宝交易号 tradeno:示例代码重要入参说明●subject:必填,商品的标题/交易标题/订单标题/订单关键字等。 不可使用特殊字符,例如 /,=,& 等。●total_amount:必填,订单总金额,单位为元,精确到小数点后两位,取值范围 [0.01,100000000]。●buyer_id:必填,买家支付宝用户的 user_id,获取详情可查看 用户授权文档。●seller_id:卖家支付宝用户 id。可登录 > 主账号信息 > 账号 id 获取。●notify_url:接收的异步通知 http/https 路径地址。用户支付成功时,支付宝将向本地址发送异步通知。●product_code:在小程序场景下使用时,需传入 jsapi_pay。重要备注:若商户之前使用的是其它产品(如当面付,对应的 product_code 是 face_to_face_payment),需要将接口入参里的 product_code 调整为 jsapi_pay。●sys_service_provider_id:需要返佣的服务商(独立软件开发商)请确保传入正确的sys_service_provider_id,服务商接入如果不传入正确的 sys_service_provider_id,会导致无法获得返佣。●op_app_id:小程序经营主体 appid,指商户在小程序中,拉起收银台支付时,对应的小程序应用的 appid。商户开通jsapi支付产品后,需在 商家平台 > 凯发k8官方网娱乐官方的产品中心 > 支付产品 > 关联对应的小程序 appid,否则下单会失败。(注意:当前一个 pid 最多支持关联 20 个 appid,如需关联更多,请联系您的支付宝业务人员代为操作)。●op_buyer_open_id:商户实际经营主体的小程序应用关联的买家 open_id,指实际拉收银台支付时对应的小程序关联的买家 open_id,此 op_buyer_open_id 与 op_app_id 关联使用。(注意:当传入的 op_app_id 与发起调用的 appid 不一致时使用,传 op_buyer_open_id 替换 buyer_open_id)。●extend_params:○trade_component_order_id:小程序公域商品交易场景中该参数必传,即业务订单 id。○credittradescene:先用后付信用交易场景下该参数必传,需传入 credit_pay。○zmserviceid:先用后付信用交易场景下该参数必传,芝麻服务 id。○credittradeextinfo:先用后付信用交易场景下使用,用于传入相关扩展信息。●business_params:○tiny_app_merchant_biz_type:当商家需要在 > 数据中心(入口 1:数据中心 > 交易中心 > 小程序交易;入口 2:数据中心 > 小程序分析 > 交易)中查看对应业务场景下的数据明细时,可以指定具体的业务场景值,支持传入的值详见:。唤起收银台支付在小程序端使用 tradeno,调用 接口唤起支付宝收银台,引导用户完成支付。说明:如有资金分账需求,可选择接入 产品。示例代码异步通知订单支付成功时,商家可以通过在 设置异步通知(notify_url)来获得支付宝服务端返回的支付结果,当异步通知中返回的 trade_status(交易状态)为 trade_success 时,表示支付成功。收到异步通知后需通过 printwriter 类打印输出 success。如果商家反馈给支付宝的字符不是 success 这 7 个字符,支付宝服务器会不断重发通知,直到超过 24 小时 22 分钟。一般情况下,25 小时以内完成 8 次通知(通知的间隔频率一般是:4m,10m,10m,1h,2h,6h,15h)。说明:●开发者设置的 notify_url 需要为外部网络环境可正常访问的网址,且状态码为 200,支付结果请以异步通知或 返回值为准。●有关异步通知的问题可查看 。 ●若未成功接收到异步通知,排查方法可查看 。交易辅助接口交易查询商家可调用 ,通过商家网站唯一订单号 out_trade_no 或支付宝交易号 out_trade_no 查询对应订单支付情况。交易退款当交易发生之后一段时间内,由于买家或者商家的原因需要退款时,商家可以调用 通过商家网站唯一订单号 out_trade_no 或支付宝交易号 trade_no,将对应订单支付款退还给买家,支付宝将在收到退款请求并且验证成功之后,按照退款规则将支付款按原路退到买家账号上。 说明:●交易超过约定时间(签约时设置的可退款时间)的订单无法进行退款。●退款失败后,再次提交,要用原来的退款单号。●refund_amount(需要退款的金额),该金额不能大于订单金额,单位为元,支持两位小数。●同一笔订单如需分多次退款,需传入 out_request_no 标识一次退款请求,同一笔交易多次退款需保证该值唯一(即分次退款需保证 trade_no 不变,每次退款请求都需传入不同的 out_request_no)。●全额退款,交易状态变为 trade_closed(交易关闭),不会触发异步通知。部分退款,交易状态仍为 trade_success(交易成功)会触发异步通知。退款结果●退款成功:退款是否成功可以根据同步响应的 fund_change 参数来判断,返回值为 y 则表示退款成功。●退款失败:根据 错误码 确认是否要重试,重试时注意 out_request_no 需保持一致。●系统异常:无法确认退款结果。○方案一:重试,重试时注意 out_request_no 需保持一致。○方案二:先调用 确认退款结果,如失败,再发起重试。退款到银行卡通知退款存在退到银行卡场景下时,支付宝会调用 根据银行回执消息发送退款完成信息至应用网关地址。重要说明:●如需触发 alipay.trade.refund.depositback.completed(收单退款冲退完成通知),需要在调用 alipay.trade.refund(统一收单交易退款接口)时,传入参数 "query_options":["deposit_back_info"]。●开发者需登录 进入对应应用详情页,在 开发设置 > from 平台 中订阅 alipay.trade.refund.depositback.completed(收单退款冲退完成通知)。更多 from 蚂蚁消息详情可点击查看 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。查询退款结果商家/服务商可调用 查询对应out_request_no(退款请求号)的退款情况。 重要说明:1退款查询接口的trade_no、out_trade_no、out_request_no必须和退款接口保持一致,否则交易号一致,out_request_no 不同,只会返回 10000,success,但是没有具体的退款信息。2该接口的返回 10000,仅代表本次查询操作成功,不代表退款成功,当接口返回的 refund_status 值为 refund_success 时表示退款成功,否则表示退款没有执行成功。交易撤销支付交易返回失败或支付系统超时,商家可调用 通过商家网站唯一订单号 out_trade_no 或支付宝交易号 trade_no 撤销交易。说明:●订单用户支付失败,支付宝将关闭此订单。●仅发生支付系统超时或者支付结果未知时可调用本接口撤销交易。●其它正常支付的订单,实现相同功能调用 。交易关闭当交易创建后,用户如果在一定时间内未进行支付,商家可调用 通过商家网站唯一订单号 out_trade_no 或支付宝交易号 trade_no 关闭,将对应未付款的交易进行关闭。对账目前支付宝对外的常用对账方式有两种:●一种是通过在 商家平台 > 下载账单的方式来对账。●一种是通过调用接口的方式来实现对账,下文介绍如何通过接口获取对账单下载链接。更多后台下载及账单示例图详情可查看 。商家可通过接口下载指定日期(当天除外)的业务明细账单文件,并结合自身业务系统实现自动对账。系统交互流程1商家系统调用 传入指定日期,获得该日期账单文件的下载地址。2商家系统通过 http 方式后台访问账单下载链接,将账单 csv 文件下载到本地后自行处理。注意该下载链接仅 30 秒,在得到链接后系统需要立刻下载账单文件。示例代码下载账单文件示例代码