支付宝支付开发实践总结-Java-支付宝当面付-支付宝小程序-二维码生成-支付宝退款-APP调起支付宝支付

本文总结了支付宝支付的集成经验,包括Java中初始化配置、小程序用户ID获取、APP调用支付、小程序内支付、当面付二维码生成、退款流程以及二维码创建。使用了支付宝提供的jar包,并介绍了关键类和接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然目前相对较火的支付方式是微信支付,但是本人更喜欢支付宝支付,有积分拿,还可以部分提现免手续费,每月还有信用卡还款免手续费额度,捐步数,蚂蚁森林等等,扯远了,总之,对我来说,微信用于沟通,支付宝是支付主力。

以下是支付宝集成到服务器的经验总结

准备工作

使用支付功能,首先是进行注册等等,然后获得相应的 pidappid 以及公钥私钥
支付宝小程序开发又有对应的 id 和 公钥私钥对;
申请支付宝开发的具体步骤略,懒得贴图,毕竟还要打码,哈哈
为了快速集成开发,引入了支付宝封装的jar包
alipay-sdk-java-{version}.jar
alipay-trade-sdk-{version}.jar
之后就可以开始 briskly 的 coding 啦

若是jar包问题,可以私发

初始化加载支付宝配置信息

// 支付宝支付工具类
public final class AlipayHelper {
   
	private AlipayHelper() {
    }
	private static AlipayTradeService tradeService;
	static {
   
		Configs.init("alipay-config.properties");
		/// 初始化
		tradeService = new AlipayTradeServiceImpl.ClientBuilder().build();
	}
	public static AlipayTradeService getTradeService() {
   
		return tradeService();
	}
}

支付宝小程序中获取用户ID

@Controller
@RequestMapping(value = {
    "/requestOf/alipay" })
public class AlipayController {
   
	/**
	 * /// 获取支付宝用户ID ///
	 * @param code 用户授权之后获取到的
	 */
	@ResponseBody
	@RequestMapping(value = {
    "/attain/user_id/{code}" })
	public Map<String,Object> attainUserId(@PathVariable String code) {
   
		// Map自动转换为Json
		Map<String,Object> dataMap = new HashMap<>(8,0.1f); 
		try {
   
			AlipayClient alipayClient = new DefaultAlipayClient(
				"https://openapi.alipay.com/gateway.do", "支付宝小程序APPID",
				"私钥字符串","json","UTF-8","公钥字符串","RSA2");
			// OAuthToken 验证请求封装类
			AlipaySystemOauthTokenRequest request 
				= new AlipaySystemOauthTokenRequest();
			request.setGrantType("authorization_code"); // 验证
			request.setCode(code);
			// OAuthToken 验证响应封装类 
			AlipaySystemOauthTokenResponse response 
				= alipayClient.execute(request);
			if(response.isSuccess()){
   
				String userId = response.getUserId();
				dataMap.put("user_id", userId);
			} else {
   
				dataMap.put("err_msg", response.getCode() 
					+ "-" + response.getMsg() + "-" 
					+ + response.getSubCode() + "-" 
					+ + response.getSubMsg());
			}
		} catch (AlipayApiException e) {
   
			dataMap.put("err_msg", e.getMessage());
		}
		return dataMap;
	}
}

自有APP调用支付宝支付

@Controller
@RequestMapping(value = {
    "/requestOf/alipay" })
public class AlipayController {
   
	/**
	 * 获取调起支付的参数
	 */
	@ResponseBody
	@RequestMapping(value = {
    "/pre/callFor/payment" })
	public Map<String,Object> preCallForPayment(String account,Double fee) {
   
		// Map自动转换为Json
		Map<String,Object> dataMap = new HashMap<>(8,0.1f); 
		try {
   
			AlipayTradeAppPayModel model = new AlipayTradeAppPayModel();
				model.setBody( "自定义字符串,如 缴费支付" );
				model.setSubject( "自定义字符串,如 202号楼6单元501室" );
				model.setOutTradeNo("自定义的交易单号,如 202101011010101234567890");
				model.setTimeoutExpress( "10m" );
				model.setTotalAmount( fee ); // 需支付金额:元
				model.setProductCode( "产品代码,如 ELECTRICITY_PAYMENT" );
			AlipayClient alipayClient = new DefaultAlipayClient(
				"https://openapi.alipay.com/gateway.do"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值