Heim >Java >javaLernprogramm >Wie implementiert man die Java-Zahlungsfunktion?
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); }
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; }
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:
rrreeDie 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; }
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!