Heim > Java > javaLernprogramm > Wie implementiert man die Java-Zahlungsfunktion?

Wie implementiert man die Java-Zahlungsfunktion?

WBOY
Freigeben: 2023-05-08 20:05:33
nach vorne
2460 Leute haben es durchsucht

Das einfachste Zahlungs-SDK der Geschichte

Werfen wir zunächst einen Blick auf die API:

package com.joe.pay;

import com.joe.pay.pojo.*;

/**
 * 支付服务接口
 *
 * @author joe
 * @version 2018.06.29 11:32
 */
public interface PayService {
    /**
     * 调用第三方支付
     *
     * @param request 支付参数
     * @return 支付结果
     */
    SysResponse<PayResponse> pay(PayRequest request);

    /**
     * 申请退款
     *
     * @param request 退款请求
     * @return 退款响应
     */
    SysResponse<RefundResponse> refund(RefundRequest request);
}
Nach dem Login kopieren

Wie Sie sehen können, bietet die PayService-Schnittstelle Zahlungsmethoden und Rückerstattungsmethoden. Schauen wir uns die Parameterdefinition der Zahlungsmethode an:

package com.joe.pay.pojo;

import lombok.Data;

/**
 * 支付参数,除了openid外所有参数必填
 *
 * @author joe
 * @version 2018.07.02 10:36
 */
@Data
public class PayRequest implements Request{
    /**
     * 商户网站唯一订单号
     */
    private String outTradeNo;
    /**
     * 对一笔交易的描述信息
     */
    private String body;
    /**
     * 商品的标题/交易标题/订单标题/订单关键字等。
     * <p>
     * 对于微信支付来说需传入应用市场上的APP名字-实际商品名称,天天爱消除-游戏充值。
     */
    private String subject;
    /**
     * 订单生成时间,格式为yyyy-MM-dd HH:mm:ss
     */
    private String createTime;
    /**
     * 支付时长,单位为秒,如果设置300就是五分钟,超过五分钟订单自动取消
     */
    private int expire = 300;
    /**
     * 订单金额,单位为分
     */
    private int totalAmount;
    /**
     * 发起请求的用户的实际IP
     */
    private String ip;
    /**
     * 支付类型:APP、WEB(微信对应公众号,支付宝对应网页支付)
     */
    private String tradeType = "APP";
    /**
     * 用户openid,只有在微信公众号支付时需要
     */
    private String openid;
    /**
     * 附加数据,会与结果一并返回
     */
    private String attach;
}
Nach dem Login kopieren

OK, ich glaube, dass die oben genannten Parameter auch für Studenten klar und intuitiv verständlich sind. Es handelt sich um einige grundlegende Bestellinformationen:

rrree

Die Rückerstattungsparameter sind noch einfacher und erfordern nur wenige Informationen. Mit diesen können wir uns den Zahlungstestcode ansehen:

package com.joe.pay.pojo;

import lombok.Data;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.Size;

/**
 * 退款请求
 *
 * @author joe
 * @version 2018.07.05 17:12
 */
@Data
public class RefundRequest {
    /**
     * 第三方账单ID,与outTradeNo不能同时为空
     */
    private String orderId;
    /**
     * 商户系统订单ID,与orderId不能同时为空
     */
    private String outTradeNo;
    /**
     * 商户退款单号
     * <p>
     * 退款支持单笔交易分多次退款,多次退款需要提交原支付订单的商户订单号和设置不同的退款单号。申请退款总金
     * <p>
     * 额不能超过订单金额。 一笔退款失败后重新提交,请不要更换退款单号,请使用原商户退款单号。
     */
    @NotEmpty(message = "商户退款单号不能为空")
    private String outRefundNo;
    /**
     * 订单总金额,单位为分
     */
    @Size(min = 1)
    private int totalFee;
    /**
     * 退款金额,不能大于订单总金额
     * <p>
     * 注:多次退款总金额不能大于订单总金额
     */
    @Size(min = 1)
    private int refundFee;
    /**
     * 退款原因
     * <p>
     * 可以为空
     */
    private String refundDesc;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie implementiert man die Java-Zahlungsfunktion?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage