已更新更新时间:2024-10-17 11:15:44文档更新记录 >集成工具收藏订阅更新我的文档设置返回文档1 app支付1.1 q:开通 app支付 的授权函是否必填?哪些场景下需要提交 app支付 授权函?a:app支付 的授权函非必填,当商家账号主体与 app 开发主体不一致时需要上传对应授权函。确认商家账号主体方法:商家平台 > 账号中心 > 商户基本信息 中查看。即为您的 商家名称。确认 app 开发主体方法:即 app 开发者,一般在 app 介绍处显示。1.2 q:接入 app支付 时,提示收款额度为 0 元?或提示收款额度受限?a:支付产品收款额度会依据您开通时提供的资质情况而定。详情可查看 。若部分材料不合格,收款额度将受到限制(单笔收款 ≤ 2000 元,单日收款 ≤ 20000 元)。商家可通过在开通页面完善对应信息解除限制,详情可查看 。1.3 q:app支付 收款后资金未足额到账?app支付 服务费如何收取?a:商家在收款后支付宝按单笔订单金额的 0.6 %-1.0 % 收费(一般行业费率为 0.6 % ,特殊行业费率为 1.0 % )。例如:商家收到交易付款 100 元,产品费率为 0.6 %,则此笔交易的服务费为 100*0.6 %=0.6 元,商家实收金额为 100-0.6=99.4 元。更多收费问题可查看 。特殊行业包含:休闲游戏;网络游戏点卡、游戏渠道代理;游戏系统商;网游周边服务、交易平台;网游运营商(含网页游戏)等。1.4 q:客户端 sdk 是否支持 ipv6?a:目前app支付(包含移动支付)客户端 sdk 15.5.9 及以上的版本支持 ipv6,15.5.9 以下版本可能出现不兼容的情况,客户端 sdk 请点击下载。注意:openapi.alipay.com 网关(发送请求)支持 ipv6、异步通知网关不支持 ipv6。1.5 q:android 接入非最新版 sdk 时, 当 app 把 targetsdkversion 提升至 30 或以上,授权报错 4001 的问题如何解决?a:更新使用支付宝提供的 最新的 sdk 即可。1.6 q:移动快捷 sdk 支付时报错“无法连接到网络,请重试”?a:可能原因和凯发app官方网站的解决方案如下:●设备端没有连接到网络。●请将支付宝客户端更新到最新的版本。●尝试卸载支付宝客户端重新安装。1.7 q:移动支付 app,客户端返回系统繁忙 4000?a:可能原因和凯发app官方网站的解决方案如下。●测试的时候没有配置h5页面也没有安装支付宝客户端导致的。●sdk付款有两种模式:如果外部存在支付宝客户端,则直接跳转到支付宝客户端付款;不存在的场景下,在sdk内部进行h5支付。1.8 q:app 支付客户端报错 5000?a:商家是在客户端 3s 以内连续发起支付的情况下,为了防止用户不知具体支付的是哪笔订单,起保护性的一个客户端错误凯发app官方网站的解决方案:发起请求时间间隔延长,不建议 3s 以内连续发起支付。1.9 q:移动支付更新安装 alipay_plugin.apk 这个文件,为什么还会提示安装移动快捷支付?a:下载 并更新使用凯发app官方网站官网提供的最新的sdk即可。1.10 q:客户端返回 resultcode 说明有哪些?a:在 callback 中可能出现的错误码(返回码):openauthtask.ok = 9000 - 调用成功openauthtask.duplex = 5000 - 3s 内快速发起了多次支付 / 授权调用。稍后重试即可。openauthtask.not_installed = 4001 - 用户未安装支付宝 app。openauthtask.sys_err = 4000 - 其它错误,如参数传递错误。1.11 q:报错“this app is not allowed to query for scheme alipay”,如何解决?a:近期苹果公司 ios 9系统策略更新,限制了http协议的访问,此外应用需要在“info.plist”中将要使用的 url schemes 列为白名单,才可正常检查其它应用是否安装。1.12 q:app 支付是否支持 h5 页面支付?a:支持。android 和 ios 安装有支付宝客户端的情况下,唤起支付宝客户端进行支付。android 和 ios 未安装支付宝客户端的情况下,唤起 h5 页面,通过登录支付宝账号实现支付。唤起 h5 页面显示效果修改如下图。1.13 q:客户端提示“failure calling remote service”,如何处理?a:单独在客户端调试时,客户端上使用的私钥没有转pkcs8导致的。1.14 q:ios 导入 sdk 报错“openssl/rsa.h' file not found”,如何处理?a:需要对“header search paths”增加头文件路径:$(srcroot)/项目名称。比如把openssl这个文件导入到了这个工程目录下:项目名称/公共类/工具&第三方/支付宝sdk/openssl,中间隔了三个文件夹,那么在header search paths 的设置就得改为 $(srcroot)/项目名称/公共类/工具&第三方/支付宝sdk。注意:官方的demo中,openssl 这个文件放到了项目根目录下,所以“header search paths”只需要设置$(srcroot)/项目名称 ,所以需要根据自身项目openssl文件夹位置修改。另外切记,demo 中使用的 rsa.h 是为了演示签名的过程,实际签名的过程应该放在服务端。1.15 q:ios 移动支付接口付款成功后,无法正确跳回商家的 app?a:这里的 url schemes 中输入的 alisdkdemo,为测试 demo,实际商家的 app 中要填写独立的 scheme,建议跟商家的 app 有一定的标识度,要做到和其它的商家 app 不重复,否则可能会导致支付宝返回的结果无法正确跳回商家 app。1.16 q:当出现 h5 支付/授权页面无法输入,webview 卡死现象?a:客户端进行 h5 页面支付,或者授权页面输入信息时,出现卡顿现象,导致原因如下:1开启硬件加速同时windowbackground为null导致。○为 windowbackground 设置一个颜色(transparent也可以)。 ○针对支付宝支付/授权的 activity 设置 `android:hardwareaccelerated="false"`,如下代码所示:2调用了mwebview.pausetimers() pausetimers 是一个全局方法,会停止所有 js 的执行,所以方法有以下两种,任取其一:○不要使用 pausetimers()。○在进入支付功能前,调用 resumetimers()。具体凯发app官方网站的解决方案可查看 。1.17 q:app支付 无法实现 h5 支付,如何处理?a:正常情况下 android 和 ios 未安装支付宝客户端的情况下,唤起h5页面,通过登录支付宝账号实现支付,但实测无法唤起h5页面支付,导致原因如下1ios 系统:ios 不安装支付宝客户端的时候不能打开 h5 的页面:在调用支付的时候取下 [[[uiapplication shareapplication] windows] index:0] 看看 hidden 属性是否为 yes,如果是说明隐藏了 window,h5 就出不来了,设置为 no 就可以了 [[[uiapplication sharedapplication] windows] objectatindex:0]; 或把app中第 0 个 window 的 hidden 属性改成 no,就可以了。 2android 系统:android 手机在没有安装支付宝客户端的情况下,调试代码唤不起 h5 收银台支付:请查看配置文件 androidmanifest.xml,必须和 demo 一样(主要是 activity 这一部分),具体配置如下。具体凯发app官方网站的解决方案可查看 。1.18 q:通知验签失败,如何处理?a:具体验签说明可查看 。●重点在于支付宝公钥错误(大部分商家代码中设置的都是工具中生成的商家应用公钥,而非应用中获取的支付宝公钥)。●编码格式错误导致中文乱码。●sign_type 设置错误,请保持与请求的 sign_type 一致。●公钥证书验签代码和公钥验签代码不同,请注意示例代码。1.19 q:客户端报错,如何处理?商家客户端唤起支付宝客户端后,支付宝客户端中弹窗提示 支付失败 等报错信息。出现此类异常时,系统交互如下:红色字体部分信息交互,此时商家客户端会收到详细错误信息,包含具体错误码以及错误描述。注意:支付宝客户端弹窗提示中的错误文案,为用户视角所看到的错误信息,不可用于开发者视角用于排查问题的依据。错误信息格式样例如下:其中,sub_code 和 sub_msg 为具体错误原因,可查看 来进行排查和解决。如在开发过程中碰到其他的问题,可以到 查找相关问题。注意:部分报错没有显示具体报错信息,如{resultstatus=6001, result=, memo=用户取消},无法判断是用户取消支付导致还是报错导致,建议按照客户端页面显示的报错信息进行查询定位。常见报错信息及凯发app官方网站的解决方案见下表。客户端报错凯发app官方网站的解决方案商家订单参数异常,请尝试返回后重新付款或联系商家确认1请求appid应用未上线2应用类型为第三方应用3未开通 app 支付或者未添加 app 支付功能包4sign_type填写错误,必须为rsa2类型5签名方式使用错误,应用的接口加签方式选择为公钥证书,则代码必须为证书模式加签(含有app_cert_sn和alipay_root_cert_sn),若接口加签方式选择为公钥,则代码必须为普通公钥加签。6请求参数问题,建议只传必传参数测试核实(沙箱调试客户端请开启沙箱联调代码)7密钥匹配问题,代码中设置的私钥和应用中上传的应用公钥不匹配卖家账户状态异常,请联系卖家解决。(t1)商家收款账号存在异常,建议商家电话拨打联系4007585858处理。系统繁忙,请稍后再试请按照 中客户端返回具体报错定位订单已付款成功,请勿重复提交。(alin42279)该笔订单已支付完成,不可使用相同的商家订单号发起请求。花呗分期暂不可用,请更换付款方式1用户尚未开通花呗或花呗可用额度不足2花呗分期额度过小或超支(建议设置200元测试)3收款账号未开通花呗分期协议或接口不支持花呗分期收款4账号存在风险5接口设置支付渠道,禁用花呗分期订单已超时,请重新下单后再发起付款(alin47094)接口传入了超时参数,未在交易超时前支付,建议更换新的订单号out_trade_no重新请求。1.20 q:异步问题,如何处理?异步通知是否发送、接收通知后是否返回success、收不到异步等问题可通过 进行检索查询。使用教程可查看 。2 退款问题2.1 q:交易退款接口是否会触发异步通知?a:统一收单交易退款接口(alipay.trade.refund)本身接口不支持设置notify_url参数,因此退款导致触发的异步通知是发送到支付接口中设置的notify_url。根据退款的行为可分为全额退款和部分退款,由于app支付异步触发条件默认trade_success(交易成功),trade_closed(交易关闭),trade_finished(交易完成)三种状态均会触发异步通知。全额退款:交易状态变为trade_closed(交易关闭),触发通知。部分退款:交易状态为trade_success(交易成功),触发通知。同理可用于交易关闭接口(alipay.trade.close),接口调用后交易状态为trade_closed(交易关闭)。2.2 q:如何区分支付和退款触发的通知?a:相较支付触发的异步通知,退款触发异步通知中有refund_fee(总退款金额)、gmt_refund(交易退款时间)等参数。2.3 q:如何区分全额退款和部分退款触发的通知?a:(1)异步通知中的out_biz_no为退款接口的out_request_no,若未设置则为退款的trade_no,可用于判断对应那笔退款请求。(2)部分退款的交易状态是trade_success(交易成功),且异步通知中有退款相关参数等信息。全额退款成功的交易状态是trade_closed(交易关闭),异步通知中有退款相关参数,且含有gmt_close(订单结束时间)。2.4 q:如何区分全额退款和订单超时触发的异步通知?a:全额退款和订单超时都会导致trade_closed(交易关闭),由于全额退款是支付成功后退款导致。全额退款的异步通知中有refund_fee(总退款金额)、gmt_refund(交易退款时间)参数,订单超时关闭没有这两个参数。2.5 q:如何查询退款资金到账时间?a:●如果付款是通过支付宝余额等渠道,退款成功后就直接到账。●如果付款是通过银行卡支付,可根据退款接口中deposit_back_info(银行卡冲退信息)的est_bank_receipt_time(预估银行到账时间)进行判断。3 查询接口3.1 q:支付成功,但查询交易返回支付金额为0?a:查询接口中需设置query_options=fund_bill_list,才可在响应参数中返回fund_bill_list(交易支付使用的资金渠道)以及其它实付金额等信息。示例:3.2 q:如何区分超时付款关闭和全额退款关闭?a:未付款交易超时关闭:用户未支付导致交易关闭,没有交易退款金额等信息,trade_status=trade_close。全额退款关闭:用户支付完成后全额退款成功,含有send_pay_date(本次交易打款给卖家的时间)等信息,trade_status=trade_close。3.3 q:如何区分全额退款和部分退款?a:部分退款:只退还部分金额,买家的交易仍然处于trade_success(交易成功)状态,含有支付金额等信息。全额退款:全额退款成功的交易状态是trade_closed(交易关闭),支付金额等信息为0。注意:查询接口中必须设置query_options=fund_bill_list。4 支付宝客户端账单4.1 q:账单上的信息如何修改?a:用户侧账单如下:页面信息支付账单退款账单头像为b.alipay.com-的商家logo退款账单头像固定,为一个“退”字,无法修改。账户名称(显示优先级)>商家账户认证名称。注意:三方调用则显示授权商家信息。退款账单显示的商家账户名称与支付账单时商家的名称一致。无法另外设置与支付账单名称不同的信息。金额支付接口设置的total_amount(订单总金额)退款接口设置的refund_amount(退款金额)交易状态根据交易情况返回trade_status(交易状态)。全额退款后,支付账单显示为“交易关闭”。退款成功显示固定格式:退款成功商品说明支付接口设置的subject(订单标题)注:“查看购物详情”目前暂不支持配置。格式固定:退款-支付接口中设置的subject(订单标题)。退款账单中的商品说明无法通过退款接口的refund_reason(退款原因)进行修改。创建时间订单创建时间,非接口请求时间。退款接口返回的gmt_refund_pay(退款支付时间),非接口请求时间。订单号支付接口订单创建后生成的trade_no(支付宝交易号)支付账单保持一致。支付账单和退款账单信息保持一致。商户订单号支付接口商家自定义的out_trade_no(商家订单号)。支付账单和退款账单信息保持一致。账单分类根据商家自己开通产品行业分类,无法修改。注意:支付接口设置 body(商品描述)和退款接口设置 refund_reason(退款原因)可在 或者下载的对账单中显示。 " width="16" class="ne-image-loading-icon">图片加载失败