# lakala-pay-sdk-java **Repository Path**: lklink/lakala-pay-sdk-java ## Basic Information - **Project Name**: lakala-pay-sdk-java - **Description**: 闲暇之余整合拉卡拉支付接口API - **Primary Language**: Java - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: https://gitee.com/lklink/lakala-pay-sdk-java - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 5 - **Created**: 2022-11-23 - **Last Updated**: 2025-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 拉卡拉支付java-sdk说明-新 ## 项目结构 ``` lakala-pay-sdk-java ├── main/java/cn/lklink/pay/lkl ├── core //拉卡拉支付配置及客户端 ├── request //拉卡拉支付请求报文 ├── util //工具类 ├── V3LabsApi //拉卡拉V3.0下支付类接口API └── V3LosApi //拉卡拉V3.0下订单类接口API ├── test/java/cn/lklink/pay/lkl/api/v3/labs //拉卡拉V3.0下支付类 ├── QueryTradeQueryTest //查询交易测试类 ├── RelationCloseTest //关单交易测试类 ├── RelationRefundTest //退款交易测试类 ├── RelationRevokedTest //撤销交易测试类 ├── TransMicropayTest //被扫交易测试类 └── TransPreorderTest //主扫交易测试类 ├── test/java/cn/lklink/pay/lkl/api/v3/los //拉卡拉V3.0下订单类 ├── GenerateOrderTest //收银台下单测试类 └── QueryOrderTest //订单交易信息查询测试类 └── test/java/cn/lklink/pay/lkl/api/oauth └── TkTokenApiTest 增加“拉卡拉-拓客SAAS商户管理接口(新)”获取token接口 ``` ## V3LabsApi方法介绍 [拉卡拉官方文档-支付类接口](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rbquahgve) ### 主扫交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-主扫交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rg22bltnj) ```java /** * 主扫交易接口 * * @param preorderRequest 请求报文 * @return */ public static String transPreorder /** * 主扫支付-支付宝(41-NATIVE)场景下 * * @param out_trade_no 商户交易流水号 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param goods_id 商品的编号 * @param goods_name 商品名称 * @param quantity 商品数量 * @return * @throws IOException */ public static String transPreorder_alipay_native /** * 主扫支付-支付宝(51-JSAPI)场景下 * * @param out_trade_no 商户交易流水号 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param user_id 买家在支付宝的用户id(支付宝的buyer_user_id) * @param goods_id 商品的编号 * @param goods_name 商品名称 * @param quantity 商品数量 * @return * @throws IOException */ public static String transPreorder_alipay_jsapi /** * 主扫支付-微信(71-小程序)场景下 * * @param out_trade_no 商户交易流水号 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param sub_appid 子商户公众账号ID(微信分配的子商户公众账号ID,sub_appid) * @param user_id 用户标识(用户在子商户sub_appid下的唯一标识,sub_openid) * @param goods_id 商品编码 * @param goods_name 商品的实际名称 * @param quantity 用户购买的数量 * @return * @throws IOException */ public static String transPreorder_wxpay_applet /** * 主扫支付-微信(51-JSAPI)场景下 * * @param out_trade_no 商户交易流水号 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param sub_appid 子商户公众账号ID(微信分配的子商户公众账号ID,sub_appid) * @param user_id 用户标识(用户在子商户sub_appid下的唯一标识,sub_openid) * @param goods_id 商品编码 * @param goods_name 商品的实际名称 * @param quantity 用户购买的数量 * @return * @throws IOException */ public static String transPreorder_wxpay_jsapi ``` ### 被扫交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-被扫交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rh5ini6vs) 说明:被扫支付场景,可能存在支付中需要用户输入密码的情况。该情况下一般交易会返回“BBS10000-支付中”状态。 在该场景下,建议发起方发起多次查询,查询频率推荐1分钟内按 5s+5s+5s+5s+10S+10S+20S方式联机查询,并保留手工发起查询的能力。
场景说明: 如果用户支付密码用时比较长,商户多次查询完成时,用户还没有输密码完成,拉卡拉这边会按照一定的轮询策略 (总时间范围大概在两个小时的多次查询)继续向账户端发起查询,查询成功后再按照接口中通知地址通知商户。 如果用户在拉卡拉的轮询查询都完成了还没有完成输入密码,此时交易还处于中间态, 只能依赖商户发起手工查询,触发拉卡拉再次向账户端发起交易结果查询 ```java /** * 被扫交易 * * @param micropayRequest 请求报文 * @return */ public static String transMicropay /** * 被扫支付-支付宝支付 * * @param out_trade_no 商户交易流水号 * @param auth_code 支付授权码 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param goods_id 商品的编号 * @param goods_name 商品名称 * @param quantity 商品数量 * @return * @throws IOException */ public static String transMicropay_alipay /** * 被扫支付-微信支付 * * @param out_trade_no 商户交易流水号 * @param auth_code 支付授权码 * @param total_amount 金额 * @param request_ip 请求方IP地址 * @param subject 订单标题 * @param notify_url 商户通知地址 * @param goods_id 商品的编号 * @param goods_name 商品名称 * @param quantity 商品数量 * @return * @throws IOException */ public static String transMicropay_wxpay ``` ### 退款交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-退款交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rijhcq88f) ```java /** * 退款交易 * * @param refundRequest 请求报文 * @return */ public static String relationRefund /** * 退款交易-根据原商户交易流水号 * * @param out_trade_no 商户交易流水号 * @param refund_amount 退款金额 * @param refund_reason 退款原因 * @param origin_out_trade_no 原商户交易流水号 * @param request_ip 请求方IP地址 * @return * @throws IOException */ public static String relationRefundByOriginOutTradeNo ``` ### 撤销交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-撤销交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rjf52jh79) ```java /** * 撤销交易 * * @param revokedRequest 请求报文 * @return */ public static String relationRevoked /** * 撤销交易-根据原商户交易流水号 * * @param out_trade_no 商户交易流水号 * @param origin_out_trade_no 原商户交易流水号 * @param request_ip 请求方IP地址 * @return * @throws IOException */ public static String relationRevokedByOriginOutTradeNo ``` ### 关单交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-关闭交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rkdq6kslp) ```java /** * 关单交易 * * @param closeRequest 请求报文 * @return */ public static String relationClose /** * 关单交易-根据原商户交易流水号 * * @param origin_out_trade_no 原商户交易流水号 * @param request_ip 请求方IP地址 * @return * @throws IOException */ public static String relationCloseByOriginOutTradeNo ``` ### 查询交易 [拉卡拉官方文档-交易接口V3.0-支付类接口-查询交易](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rlqbd93ls) ```java /** * 查询交易 * * @param tradeQueryRequest 请求报文 * @return */ public static String queryTradeQuery /** * 查询交易-根据商户交易流水号 * * @param out_trade_no 商户交易流水号 * @return * @throws IOException */ public static String queryTradeQueryByOutTradeNo ``` ## V3LosApi方法介绍 [拉卡拉官方文档-交易接口V3.0-订单类接口](http://106.14.188.26:8182/docs/openplatform/openplatform-1d77rb3b6n43i) ### 收银台下单 [拉卡拉官方文档-交易接口V3.0-订单类接口-收银台下单](http://106.14.188.26:8182/docs/openplatform/openplatform-1d5u3lgkqht3r) ```java /** * 收银台下单 * * @param generateOrderRequest 请求报文 * @return * @throws IOException */ public static String generateOrder /** * 收银台下单-简单 * * @param out_order_no 商户订单号 * @param total_amount 订单金额,单位:分 * @param order_info 订单标题,在使用收银台扫码支付时必输入,交易时送往账户端 * @param notify_url 订单支付成功后商户接收订单通知的地址 * @param callback_url 客户端下单完成支付后返回的商户网页跳转地址 * @return * @throws IOException */ public static String generateOrder_simple ``` ### 订单交易信息查询 [拉卡拉官方文档-交易接口V3.0-订单类接口-订单交易信息查询](http://106.14.188.26:8182/docs/openplatform/openplatform-1d5u41s4a1gs6) ```java /** * 订单交易信息查询 * * @param queryOrderRequest 请求报文 * @return * @throws IOException */ public static String queryOrder /** * 订单交易信息查询-根据商户订单号 * * @param out_order_no 商户订单号 * @return * @throws IOException */ public static String queryOrderByOutOrderNo ```