<?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="http://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>
