退款实现

回调校验实现
This commit is contained in:
egan
2018-05-02 17:02:12 +08:00
parent 0366ca5470
commit edf53c9b7c
4 changed files with 60 additions and 7 deletions

View File

@@ -128,17 +128,22 @@ public class PayPalPayService extends BasePayService{
@Override
public boolean verify(Map<String, Object> params) {
return false;
HttpStringEntity httpEntity = new HttpStringEntity("{\"payer_id\":\""+(String)params.get("PayerID")+"\"}", ContentType.APPLICATION_JSON);
httpEntity.setHeaders(authHeader());
JSONObject resp = getHttpRequestTemplate().postForObject(String.format(getReqUrl(PayPalTransactionType.EXECUTE), (String) params.get("paymentId")), httpEntity, JSONObject.class);
return "approved".equals(resp.getString("state"));
}
@Override
public boolean signVerify(Map<String, Object> params, String sign) {
return false;
return true;
}
@Override
public boolean verifySource(String id) {
return false;
return true;
}
/**
@@ -265,9 +270,22 @@ public class PayPalPayService extends BasePayService{
*/
@Override
public Map<String, Object> refund(RefundOrder refundOrder) {
// JSONObject resp = getHttpRequestTemplate().getForObject(String.format(getReqUrl(PayPalTransactionType.REFUND), refundOrder.getTradeNo()), authHeader(), JSONObject.class);
// return resp;
return null;
JSONObject request = new JSONObject();
if (null != refundOrder.getRefundAmount() && BigDecimal.ZERO.compareTo( refundOrder.getRefundAmount()) > 0){
Amount amount = new Amount();
amount.setCurrency(refundOrder.getCurType().name());
amount.setTotal(refundOrder.getRefundAmount().toString());
request.put("amount", amount);
request.put("description", refundOrder.getDescription());
}
HttpStringEntity httpEntity = new HttpStringEntity(request, ContentType.APPLICATION_JSON);
httpEntity.setHeaders(authHeader());
JSONObject resp = getHttpRequestTemplate().postForObject(String.format(getReqUrl(PayPalTransactionType.REFUND), refundOrder.getTradeNo()), httpEntity, JSONObject.class);
return resp;
//
// return null;
}
/**
* 查询退款

View File

@@ -25,10 +25,17 @@ public enum PayPalTransactionType implements TransactionType {
* 付款 网页支付
*/
sale("payments/payment"),
REFUND("payments/sale/{0}/refund"),
/**
* sale 支付退款
*/
REFUND("payments/sale/{saleId}/refund"),
REFUND_QUERY("payments/refund/{refundId}"),
PAYOUT("payments/payouts/{payoutBatchId}"),
ORDERS("payments/orders/{orderId}"),
/**
* 回调订单状态查询
*/
EXECUTE("v1/payments/payment/{paymentId}/execute"),
;