支付宝支付实战总结
-
APP支付介绍
- 已安装支付宝支付流程
- 未安装支付宝支付流程
-
- 创建应用并获取APPID: 需要登录支付宝开放平台(open.alipay.com),在开发者中心中创建您的应用,应用审核通过后会生成应用唯一标识(APPID)
- 添加App支付能力。添加功能后开发者需要在开放平台里进行签约,第三方应用开发者可以代替商户签约
- 配置秘钥:支持上传 RSA2(SHA256) 的应用公钥和公钥证书两种形式
- RSA 密钥包含应用私钥(APP_PRIVATE_KEY)、应用公钥(APP_PUBLIC_KEY),是通过支付宝提供的工具可以一键生成秘钥。
- 生成密钥后,开发者就可以在应用信息页面进行配置,配置完成后可以获取支付宝公钥(ALIPAY_PUBLIC_KEY)
- 集成开发,接入APP支付需要集成两个 SDK
- 客户端 SDK 需要集成在商户自己的 APP 中,点击下载客户端SDK。
- 服务端SDK 需要商户集成在自己的服务端系统中,用于协助解析并验证客户端同步返回的支付结果和异步通知,开放平台服务端 SDK,包含 JAVA, PHP, PYTHON, NodeJS 和 .NET 版本,封装了签名&验签、HTTP接口请求等基础功能
-
- 点击“开放平台-开发者中心-沙箱环境”。进入沙箱环境页面,系统已经自动为你创建一个应用,在 信息配置 中可以看到应用信息
- 沙箱环境密钥设置,和正式环境的秘钥配置一样,参见上面
- 使用沙箱环境,需要替换下面4项配置
- 请求网关修改为:https://openapi.alipaydev.com/gateway.do
- appid 切换为沙箱的 appid
- 应用私钥(app_private_key)换成沙箱环境的私钥,可通过支付宝提供的工具生成
- 支付宝公钥(alipay_public_key)使用沙箱环境的支付宝公钥,在沙箱环境上传应用公钥后,会生成沙箱环境的支付宝公钥
- 沙箱环境会用到 沙箱版钱包APP,目前只支持android版
- 登录开发平台后,点击使用沙箱工具连接,进到沙箱环境,可以用支付宝扫描下载
- 沙箱账号为沙箱工具提供了买家和卖家账号,可以选择登录
-
集成服务端SDK
-
pom
<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.9.106.ALL</version> </dependency>
-
APP支付 : alipay.trade.app.pay - app 支付接口 2.0
// alipayClient 只需要初始化一次,后续调用不同的API都可以使用同一个 alipayClient 对象 // URL : 支付宝网关 : https://openapi.alipay.com/gateway.do // APP_PRIVATE_KEY : 应用私钥 : 由开发者自己生成 // FORMAT: 参数返回格式,只支持 json // CHARSET : 请求和签名使用的字符编码格式,支持 GBK 和 UTF-8 // ALIPAY_PUBLIC_KEY: 支付宝公钥,由支付宝生成 // SIGN_TYPE : 商户生成签名字符串所使用的签名算法类型,目前支持 RSA2 和 RSA,推荐使用 RSA2 AlipayClient alipayClient = new DefaultAlipayClient(URL, APP_ID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY, SIGN_TYPE); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); request.setNotifyUrl(this.aliPayNotifyUrl); //biz_content={"out_trade_no":"102004101730291161689","passback_params":"{\"payType\":0}","product_code":"QUICK_MSECURITY_PAY","subject":"测试商品","timeout_express":"5m","total_amount":"11"} // 附加参数 Map appParams = new HashMap(2); appParams.put("payType", PayType.ALIPAY.getType()
-