package com.iplatform.pay.support; import com.iplatform.base.PlatformRuntimeException; import com.iplatform.model.po.S_pay_notify; import com.iplatform.model.po.S_pay_order; import com.iplatform.pay.service.PlatformOrderServiceImpl; import com.iplatform.pay.util.NotifyUtils; import com.iplatform.pay.util.OrderUtils; import com.walker.infrastructure.utils.JsonUtils; import com.walker.pay.NotifyValue; import com.walker.pay.Order; import com.walker.pay.PayStatus; import com.walker.pay.response.ScanOrderResponsePay; import com.walker.pay.support.DefaultOrder; import com.walker.pay.wechat.v2.AppOrderResponsePay; import com.walker.pay.wechat.v2.H5ResponsePay; import com.walker.pay.wechat.v2.NotifyOrder; import com.walker.pay.wechat.v2.WechatV2OrderCallback; /** * 微信v2版本支付订单回调实现。
* 注意:该对象设计不合理,不应该在底层包实现AbstractOrderCallback
,后续应该直接在平台继承该对象,不能放到类库中,不利于复用。
* 正确方法参考: {@linkplain AllinpayCloudOrderCallback}
* @author 时克英
* @date 2023-03-01
*/
public class DefaultWechatV2OrderCallback extends WechatV2OrderCallback {
@Override
protected void doPrepareOrder(Order platformOrder, AppOrderResponsePay responsePay){
logger.info("默认实现: 执行保存'AppOrderResponsePay'订单操作,order={}", platformOrder);
try {
String payInfo = JsonUtils.objectToJsonString(responsePay.getAppOrderInfo());
this.savePayOrderPersistent(platformOrder, payInfo);
} catch (Exception e) {
throw new RuntimeException("保存'微信v2-App'订单错误,无法转成json:" + responsePay.getAppOrderInfo(), e);
}
}
@Override
protected void doPrepareOrder(Order platformOrder, ScanOrderResponsePay responsePay){
logger.info("默认实现: 执行保存'ScanOrderResponsePay'订单操作,order={}", platformOrder);
this.savePayOrderPersistent(platformOrder, responsePay.getCodeUrl());
}
@Override
protected void doPrepareOrder(Order platformOrder, H5ResponsePay responsePay){
logger.info("默认实现: 执行保存'H5ResponsePay'订单操作,order={}", platformOrder);
try {
this.savePayOrderPersistent(platformOrder, JsonUtils.objectToJsonString(responsePay));
} catch (Exception e) {
throw new PlatformRuntimeException("H5ResponsePay --> Json 错误:" + e.getMessage(), e);
}
}
@Override
protected void doNotifyOrderPay(NotifyValue