总结
其他的内容都可以按照路线图里面整理出来的知识点逐一去熟悉,学习,消化,不建议你去看书学习,最好是多看一些视频,把不懂地方反复看,学习了一节视频内容第二天一定要去复习,并总结成思维导图,形成树状知识网络结构,方便日后复习。
这里还有一份很不错的《Java基础核心总结笔记》,特意跟大家分享出来
目录:
部分内容截图:
1.7、点击生成秘钥,生成商户私钥和应用秘钥,并且会以文本(txt)的方式保存起来
1.8 回到开放平台 的应用完善页面,点击设置应用公钥,接收验证码,输入上一步生成的商户应用公钥,点击确定。然后会生成对应的支付宝公钥,商户应用公钥和支付宝公钥要明确区分开,开发代码中要使用到 支付宝公钥 和 商户应用私钥。
可以直接在这个网址里面进行设置:https://openhome.alipay.com/platform/keyManage.htm
1.9、提交审核,一天之后,审核完成,显示应用上线。此后,可以开始后台代码开发。(正式项目需要商户签约)
2.1 引入java sdk包
com.alipay.sdk
alipay-sdk-java
3.7.26.ALL
commons-logging
commons-logging
1.1.1
2.2 开发配置类
package com.shop.constants;
/**
*类名:AlipayConfig
*功能:基础配置类
*详细:设置帐户有关信息及返回路径
*修改日期:2019-04-30
*说明:
*以下代码只是为了方便商户测试而提供的样例代码,商户可以根据自己网站的需要,按照技术文档编写,并非一定要使用该代码。
*该代码仅供学习和研究支付宝接口使用,只是提供一个参考。
*/
public class AlipayConfig {
//↓↓↓↓↓↓↓↓↓↓请在这里配置您的基本信息↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
// 应用ID,您的APPID,收款账号既是您的APPID对应支付宝账号
public static String app_id = “20160******”;
// 商户私钥,您的PKCS8格式RSA2私钥
public static String merchant_private_key = “*******”;
// 支付宝公钥,查看地址:https://openhome.alipay.com/platform/keyManage.htm 对应APPID下的支付宝公钥。
public static String alipay_public_key = “********”;
// 服务器异步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,必须外网可以正常访问
public static String notify_url = “https://www.alipay.com”;
// 页面跳转同步通知页面路径 需http://格式的完整路径,不能加?id=123这类自定义参数,沙箱环境下可以填写本地地址
public static String return_url = “http://localhost:8082/web/pay/callback”;
// 签名方式
public static String sign_type = “RSA2”;
// 字符编码格式
public static String charset = “utf-8”;
// 支付宝网关
public static String gatewayUrl = “https://openapi.alipaydev.com/gateway.do”;
//销售产品码,商家和支付宝签约的产品码,默认值为:QUICK_WAP_WAY
public static String productCode =“QUICK_WAP_WAY”;
//↑↑↑↑↑↑↑↑↑↑请在这里配置您的基本信息↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
}
2.3 开发工具类
参数详情请看这里:https://docs.open.alipay.com/204/105301/
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradeRefundRequest;
import com.alipay.api.request.AlipayTradeWapPayRequest;
import com.shop.constants.AlipayConfig;
import com.shop.constants.BakConstants;
public class PayUtil {
/**
-
@Title: alipay
-
@Description: TODO(支付)
-
@param outTradeNo 商户订单号,商户网站订单系统中唯一订单号,必填 对应缴费记录的orderNo
-
@param totalAmount 付款金额,必填
-
@param subject 主题
-
@param body 商品描述,可空
-
@param: @return
-
@param: @throws Exception
-
@return: String
-
@throws
*/
public static String alipay(String outTradeNo,String totalAmount,String subject,String body) throws Exception{
//获得初始化的AlipayClient
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id,
AlipayConfig.merchant_private_key, “json”, AlipayConfig.charset, AlipayConfig.alipay_public_key,
AlipayConfig.sign_type);
//该笔订单允许的最晚付款时间
String timeout=30m;
//设置请求参数
String content = “{“out_trade_no”:”“+ outTradeNo +”“,”
-
““total_amount”:”“+ totalAmount +”“,”
-
““subject”:”“+ subject +”“,”
-
““timeout_express”:”“+ timeout +”“,”
-
““body”:”“+ body +”“,”
-
““product_code”:”“+AlipayConfig.productCode+”“}”;
AlipayTradeWapPayRequest alipayRequest = new AlipayTradeWapPayRequest();
alipayRequest.setReturnUrl(AlipayConfig.return_url);
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
alipayRequest.setBizContent(content);
//请求
String result=“”;
result = alipayClient.pageExecute(alipayRequest).getBody();
return result;
}
/**
-
支付宝退款接口
-
@param outTradeNo
-
@param tradeNo
-
@param refundAmount
-
@param refundReason
-
@param out_request_no 标识一次退款请求,同一笔交易多次退款需要保证唯一,如需部分退款,则此参数必传
-
@return
*/
public static String aliRefund(String outTradeNo,String tradeNo,String refundAmount,String refundReason,String out_request_no) {
//获得初始化的AlipayClient
AlipayClient alipayClient = new DefaultAlipayClient(AlipayConfig.gatewayUrl, AlipayConfig.app_id, AlipayConfig.merchant_private_key, “json”, AlipayConfig.charset, AlipayConfig.alipay_public_key, AlipayConfig.sign_type);
//设置请求参数
AlipayTradeRefundRequest alipayRequest = new AlipayTradeRefundRequest();
alipayRequest.setReturnUrl(AlipayConfig.return_url);
alipayRequest.setNotifyUrl(AlipayConfig.notify_url);
try {
alipayRequest.setBizContent(“{“out_trade_no”:”“+ outTradeNo +”“,”
-
““trade_no”:”“+ tradeNo +”“,”
-
““refund_amount”:”“+ refundAmount +”“,”
-
““refund_reason”:”“+ refundReason +”“,”
-
““out_request_no”:”“+ out_request_no +”“}”);
//请求
String result;
//请求
result = alipayClient.execute(alipayRequest).getBody();
最后
/请求
String result;
//请求
result = alipayClient.execute(alipayRequest).getBody();
最后
[外链图片转存中…(img-SyHkL36Z-1715065426684)]