<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="https://ofbiz.apache.org/dtds/services.xsd">
    <description>PayPal Services</description>

    <service name="payPalSetExpressCheckout" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="setExpressCheckout">
        <implements service="payPalSetExpressCheckoutInterface"/>
    </service>
    <service name="payPalGetExpressCheckout" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="getExpressCheckout">
        <implements service="payPalGetExpressCheckoutInterface"/>
    </service>
    <service name="payPalDoExpressCheckout" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="doExpressCheckout">
        <implements service="payPalDoExpressCheckoutInterface"/>
    </service>
    <service name="payPalCheckoutUpdate" engine="java" auth="false"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="payPalCheckoutUpdate">
        <attribute name="request" mode="IN" type="javax.servlet.http.HttpServletRequest"/>
        <attribute name="response" mode="IN" type="javax.servlet.http.HttpServletResponse"/>
    </service>
    
    <service name="payPalProcessor" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="doAuthorization">
        <implements service="payPalProcessInterface"/>
    </service>
    <service name="payPalCapture" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="doCapture">
        <implements service="payPalCaptureInterface"/>
    </service>
    <service name="payPalVoid" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="doVoid">
        <description>PayPal Order Payment Void</description>
        <implements service="paymentReleaseInterface"/>
    </service>
    <service name="payPalRefund" engine="java"
             location="org.apache.ofbiz.accounting.thirdparty.paypal.PayPalServices" invoke="doRefund">
        <implements service="paymentRefundInterface"/>
    </service>
</services>
