支付宝H5手机网页支付服务商开发
前言
支付宝H5手机网页支付是支付宝提供的一种在线支付方式,用户可以通过手机网页完成支付操作。本文将介绍如何在支付宝H5手机网页中进行支付操作。
一、支付场景示例?
用户可以通过移动设备,访问商家特定的网页进行支付操作,浏览器自动跳转支付宝 App 或支付宝网页完成付款的支付产品。
二、开发步骤
1.开发准备
账号需要:支付宝企业账号服务商,支付宝个人账号个体工商户
创建支付宝第三方应用
在开发之前需要先签约申请提交材料
要求:
- 提供网站地址,网站能正常访问且页面显示完整,网站需要明确经营内容且有完整的商品信息。
- 网站必须通过 ICP 备案,且备案主体需与支付宝账号主体一致。若网站备案主体与当前账号主体不同时需上传授权函。
- 个人账号申请,需提供营业执照,且支付宝账号名称需与营业执照主体一致。
注意:需按照要求提交材料,若部分材料不合格,收款额度将受到限制(单笔收款 ≤ 2000 元,单日收款 ≤ 20000 元)。若签约时未能提供相关材料(如营业执照),请在合约生效后的 30 天内补全,否则会影响正常收款。
2.开发接入
- 服务商需要先创建好支付宝第三方应用
- 开通H5手机网页支付,并绑定创建的支付宝第三方应用
- 邀请商户入驻服务商的第三方应用,并授权app_auth_token(商家授权令牌)用于调用产品相关接口。如果是普通的自研商家接入可以不需要这步
- 调用支付宝支付接口,传入参数
3.开发配置
配置好服务商信息(alipay.properties)
# 支付宝支付相关参数
# 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
alipay.app-id=
# 支付宝网关(固定的)
alipay.gateway-url=https://openapi.alipay.com/gateway.do
# 商户私钥,您的PKCS8格式RSA2私钥
alipay.merchant-private-key=
# 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥
alipay.alipay-public-key=
# 接口内容加密秘钥,对称秘钥,可不配置
#alipay.content-key=D8entyfafkkFwtMbUqj3Mw==
# 页面跳转同步通知页面路径(需外网可访问的地址)
alipay.return-url=
# 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
# 注意:每次重新启动ngrok,都需要根据实际情况修改这个配置
alipay.notify-url=
# 商户PID,卖家支付宝账号ID
alipay.seller-id=
#第三方调用(服务商模式),传值app_auth_token后,会收款至授权app_auth_token对应商家账号,如何获传值app_auth_token请参考文档:https://opensupport.alipay.com/support/helpcenter/79/201602494631
alipay.app-auth-token =
#系统商编号,填写服务商的PID,返佣参数传值前提:传值账号需要签约返佣协议,用于isv商户。
alipay.pid =
配置信息内容可以到第三方应用的开发配置中查看到
下载最新的支付宝SDK的Maven依赖
<dependency>
<groupId>com.alipay.sdk</groupId>
<artifactId>alipay-sdk-java</artifactId>
<version>4.39.104.ALL</version>
</dependency>
支付宝公钥加签配置
AlipayConfig alipayConfig = new AlipayConfig();
alipayConfig.setServerUrl(URL);
alipayConfig.setAppId(APP_ID);
alipayConfig.setPrivateKey(PRIVATE_KEY);
alipayConfig.setFormat("json");
alipayConfig.setCharset(CHARSET);
alipayConfig.setAlipayPublicKey(ALIPAY_PUBLIC_KEY)
alipayConfig.setSignType(SIGN_TYPE);
//构造client
AlipayClient alipayClient = new DefaultAlipayClient(alipayConfig);
支付宝证书加签
CertAlipayRequest certAlipayRequest = new CertAlipayRequest();
certAlipayRequest.setServerUrl(URL);
certAlipayRequest.setAppId(APPID);
certAlipayRequest.setPrivateKey(PRIVATE_KEY);
certAlipayRequest.setFormat("json");
certAlipayRequest.setCharset(CHARSET);
certAlipayRequest.setSignType(SIGN_TYPE);
certAlipayRequest.setCertPath(app_cert_pathAPP_CERT_PATH);
certAlipayRequest.setAlipayPublicCertPath(alipay_cert_path);
certAlipayRequest.setRootCertPath(alipay_root_cert_path );
DefaultAlipayClient alipayClient = new DefaultAlipayClient(certAlipayRequest);
// 提交数据至支付宝时请使用
alipayClient.certificateExecute(request);
支付宝H5手机网页支付API接口地址:https://opendocs.alipay.com/open/29ae8cb6_alipay.trade.wap.pay?pathHash=1ef587fd&ref=api&scene=21