App 接入支付,最该注意什么?
【摘要】 App 接入支付,最该注意什么?App 接入支付,技术难度其实不高,真正容易出问题的是合规、签约、对账、安全这四点。很多团队都是先接上支付 SDK,跑通付款就上线,结果后面遇到审核被拒、资金冻结、掉单、用户重复付款。本文按实际接入的顺序,讲讲每个环节的关键点。一、先想清楚:卖的是什么,决定怎么接接支付之前,第一件事是确定商品或服务的性质。这一步没想清楚,后面的设计很可能白做。1. 国内第三方...
App 接入支付,最该注意什么?
App 接入支付,技术难度其实不高,真正容易出问题的是合规、签约、对账、安全这四点。很多团队都是先接上支付 SDK,跑通付款就上线,结果后面遇到审核被拒、资金冻结、掉单、用户重复付款。本文按实际接入的顺序,讲讲每个环节的关键点。
一、先想清楚:卖的是什么,决定怎么接
接支付之前,第一件事是确定商品或服务的性质。这一步没想清楚,后面的设计很可能白做。
1. 国内第三方支付(微信、支付宝 App 支付)
适用于实物商品、线下服务、外卖、打车、酒店、票务等。申请时要提交营业执照,账户名称需要和营业执照主体一致。纯个人账号无法申请,企业账号和个体工商户可以申请。
2. 苹果 App 内购买(IAP / StoreKit)
Apple 的规则是:只要在 App 内解锁功能,比如订阅、游戏币、关卡、付费内容、完整版,都必须用 IAP。同时禁止用二维码、许可证密钥、加密货币等方式绕开。会员、知识付费课程、去广告、虚拟币都属于这一类。
3. 两条规则并行
实物和线下服务在 iOS 上可以用 Apple Pay 或银行卡等第三方方式,不能用 IAP。所以电商类 App 通常是"微信/支付宝 + Apple Pay"并行。会员类 App 则是"IAP + 微信/支付宝(安卓端)"并行。
⚠️ 最常被忽略的坑:iOS 端"数字商品走 IAP"是硬规则。会员类 App 如果只在 iOS 上接第三方支付,大概率会被拒。在 App 里提示"去官网充值更便宜"、展示安卓端优惠,同样会被拒。不确定的话,可以提前在 App Store Connect 发起预审核咨询。
二、资质与签约:门槛比想象中高
1. 主体和资料要对得上
- 微信支付:需要先在开放平台注册并认证移动应用,拿到 AppID,然后商户号开通"APP 支付"权限,再和 AppID 绑定。
- 支付宝:签约时需要应用已上架,并提供应用名称、上架市场、下载链接;应用未上架的,需要提交 Demo 或产品说明文档。
- 主体不一致:如果 App 开发者不是签约商户,需要提供开发者授权函。
2. 包名和签名必须和平台配置一致
微信支付明确要求,Android 或鸿蒙应用填写的包名、签名,必须和项目配置一致。否则调起支付时会被校验拦下,无法付款。支付宝也会校验这些信息。
3. 业务内容要和经营范围一致
App 里需要有明确的经营内容和价格信息,而且不能包含提现、借贷、游戏点卡等平台不合作的业务,否则会被驳回。
4. 行业资质
教育、医疗、金融等特殊行业,需要提前准备办学许可证、医疗器械经营许可证、金融牌照等。
5. 时间要留够
微信 App 支付申请需要 7 个工作日内审核,支付宝一般需要 3–5 个工作日。建议在开发中期就开始申请,不要等到上线前。
三、资金链路:别自己碰钱
1. 二清风险
平台类 App 如果先把钱收到自己账户,再结算给商家,就属于"二次清算"。这是监管重点整治的行为。正确的做法是:
- 用支付平台的分账能力,一笔订单自动分给多方;
- 或者让支付机构直接结算给各商户。
2. 结算周期
新签约或交易还不稳定的商家,收款可能次日才结算到账户。产品设计时要向用户说清楚"资金到账时间"。
3. 资金不能进个人账户
《非银行支付机构监督管理条例》要求,境内交易的交易处理、资金结算和数据存储都要在境内完成。选择服务商时,要确认它只是提供技术服务,不碰资金。
四、技术实现:五个必做的点
1. 统一订单中心
所有支付渠道都映射到同一张订单表,用一个字段记录订单状态机:
待支付 → 已支付 → 已发货/已履约 → 已完成。不要在客户端判断付款结果。2. 回调一定要验签、幂等
这是掉单和重复发货的主要原因:
- 验证签名,确认回调确实来自支付平台;
- 从本地订单重新取出金额,和回调里的金额比对,防止金额被篡改;
- 用数据库唯一约束或分布式锁,保证同一笔回调只处理一次,防止重放攻击造成重复发货。
3. 主动查询兜底
用户付款后,回调可能因为网络原因没到达。建议:
- 支付结果页轮询订单状态;
- 对超过一定时间的"待支付"订单,定时主动查询平台;
- 提供超时关闭、退款入口。
4. 金额用"分"做单位
微信、支付宝的接口金额单位是分。一律用整型存储和计算,避免浮点误差。客户端展示时再转成元。
5. IAP 要做好票据校验
- 服务端验证 App Store 票据的真实性;
- 实现"恢复购买"功能,这是审核必查项;
- 处理漏单:客户端本地记录未完成的交易,App 启动后补单;
- 通过 IAP 购买的虚拟币不能设置过期。
五、安全红线
|
风险点
|
正确做法
|
|---|---|
|
密钥和证书
|
商户私钥、APIv3 密钥放服务端,或放进 KMS,绝对不能写进 App,也不能硬编码在前端
|
|
HTTPS
|
全程使用 TLS 1.2 及以上,生产环境必须开启证书校验,不能跳过域名验证
|
|
敏感数据
|
卡号、验证码、密码等不能存储,也不能打进日志
|
|
防重放
|
签名里加入时间戳和随机数,服务端校验时间窗口和是否已处理过
|
|
防篡改
|
Android 校验应用签名,iOS 使用 App Attest;建议同时做代码混淆和加固
|
|
接口权限
|
配置服务器 IP 白名单,不同环境使用不同的密钥
|
另外,App 上线后记得关注证书有效期。微信支付 API 证书、支付宝证书都会到期,要在到期前轮换,否则会突然无法支付。
六、上架与运营合规
1. App Store 审核
- 在审核备注里写清楚:购买入口在哪里、商品属于哪一类、IAP 商品 ID 是什么,并提供测试账号;
- 自动续订订阅要展示价格、周期、自动续费说明和取消路径,订阅周期至少 7 天;
- 随机宝箱需要在购买前公布概率。
2. 用户协议
支付服务协议要在 App 显著位置公示,写清支付流程、资金结算、纠纷处理方式和违约责任。
3. 日常运维
- 每日下载平台账单,和自己的订单对账,处理差异;
- 监控支付成功率,设置异常告警;
- 按行业标准,客户端安全检测至少每年做一次全面检测。
4. 选择聚合支付或服务商要谨慎
持牌机构不能把商户资质审核、交易处理、资金结算、密钥管理等核心业务交给外包。接入前确认对方是技术型服务商,资金链路直接走持牌机构,并且已经在中国支付清算协会备案。
七、推荐的上线顺序
第1–2周 确定商品性质 → 画出支付/履约流程图
第2–4周 并行推进:申请商户号、申请 IAP、开发沙箱联调
第5周 全链路测试:正常支付、退款、超时关闭、回调重放、掉单恢复、对账
第6周 安全自查 + 苹果预审核咨询 → 提审上架
上线后 每日对账、监控成功率、定期轮换证书
总结
App 接入支付,最关键的几点是:
- 性质先定:数字内容走 IAP,实物和服务走第三方支付;
- 资质先行:提前申请,确保主体、包名、签名一致;
- 别碰资金:用官方分账,避免二清;
- 服务端做主:验签、幂等、主动查询,不信任客户端返回的结果;
- 安全兜底:密钥不落地、证书定期轮换、客户端做完整性校验。
支付功能一旦上线,改造成本很高。前期把这些点设计好,后面可以少踩很多坑。
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)