支付宝支付(沙箱环境相关配置)
支付宝沙箱环境相关配置
本篇博客主要介绍支付宝沙箱环境和后端Alipay.config配置文件的配置,因开发人员使用正式环境进行开发时,需要企业进行注册审核相关资料,准备资料和时间比较久,支付宝为此提供了沙箱环境,大大减轻了开发流程。
(一)准备沙箱环境
1.进入沙箱应用:
链接地址:https://openhome.alipay.com/platform/appDaily.htm?tab=info
2.生成RSA非对称密钥对
在设置秘钥之前需要下载支付宝开发平台开发助手软件进行生成RSA不对称秘钥。
链接地址:https://opendocs.alipay.com/open/291/105971
3.设置RSA2(SHA256)秘钥
点击RSA2密钥后面的设置按钮,粘贴上一步生成的公钥,如下:
4、设置商户私钥
即上方支付宝开发平台开发助手生成的密钥对中的私钥
(二)后台Alipay.config文件配置
1.设置配置文件中的支付宝公钥
配置文件如下:
package com.yjlc.api.pay.impl.alipay.config; import java.io.FileWriter; import java.io.IOException; /** * @Description: 支付宝支付配置文件 * @author: cyb * @Date 2020-07-14 */ public class AlipayConfig { /** 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号(此处用的是沙箱环境) */ public static String APP_ID = "2016092700611035"; /** 商户私钥,您的PKCS8格式RSA2私钥,这些就是我们刚才设置的 */ public static String MERCHANT_PRIVATE_KEY = "替换成支付宝开放平台助手生成的密钥"; /** 支付宝公钥,查看地址:对应APPID下的支付宝公钥。,这些就是我们刚才设置的 */ public static String ALIPAY_PUBLIC_KEY ="替换成沙箱环境《RSA2(SHA256)密钥(推荐)》中的支付宝公钥"; /**异步通知,再这里我们设计自己的后台代码*/ public static String notify_url = "http://chenyuanbo.natapp1.cc/asynCallback?channelId=ali_pay"; /** 页面跳转同步通知页面路径(自定义后端路径) 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问*/ public static String return_url = "http://chenyuanbo.natapp1.cc/ACPSample_B2C/backRcvResponse"; /** 签名方式*/ public static String SIGN_TYPE = "RSA2"; /** 字符编码格式*/ public static String CHARSET = "utf-8"; /** 支付宝网关*/ public static String GATEWAYURL = "https://openapi.alipaydev.com/gateway.do"; /** 日志输出路径*/ public static String LOG_PATH = "C:\\"; }
下图对应上方的支付宝公钥
注意:上方chenyuanbo.natapp1.cc为我用的内网穿透设置的域名,对应本地ip 127.0.0.1:8080,大家在使用的时候切换成自己的内网穿透或者真实的访问域名。
Natapp上付费隧道配置如下:
(三)本地host文件配置:
Host文件路径如下:
C:\Windows\System32\drivers\etc
增加以下配置:
127.0.0.1 http://chenyuanbo.natapp1.cc
(四)更改生成付款二维码链接方法
//设置请求参数 AlipayTradePagePayRequest alipayRequest = new AlipayTradePagePayRequest(); alipayRequest.setReturnUrl(AlipayConfig.return_url); alipayRequest.setNotifyUrl(AlipayConfig.notify_url); //商户订单号,商户网站订单系统中唯一订单号,必填 String out_trade_no = new String(request.getParameter("WIDout_trade_no").getBytes("ISO-8859-1"), "UTF-8"); //付款金额,必填 String total_amount = new String(request.getParameter("WIDtotal_amount").getBytes("ISO-8859-1"), "UTF-8"); //订单名称,必填 String subject = new String(request.getParameter("WIDsubject").getBytes("ISO-8859-1"), "UTF-8"); subject = "yjlcPay"; //商品描述,可空 String body = new String(request.getParameter("WIDbody").getBytes("ISO-8859-1"), "UTF-8"); alipayRequest.setBizContent("{\"out_trade_no\":\"" + out_trade_no + "\"," + "\"total_amount\":\"" + total_amount + "\"," + "\"subject\":\"" + subject + "\"," + "\"body\":\"" + body + "\"," + "\"product_code\":\"FAST_INSTANT_TRADE_PAY\"}"); //请求 String result = alipayClient.pageExecute(alipayRequest).getBody(); //输出付款二维码 response.getWriter().println(result);
以上即为支付宝支付需要更改的配置,若对以上配置有疑问的可以留言讨论,转载请说明出处,博客地址:https://www.cnblogs.com/chenyuanbo/