<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_single_payment(self, order_number, order_description, order_items, amount, return_url, contact=None, currency=None, lang=None, additional_params=None):
 """ Create a single payment. Args: contact: JSON describing a payer (see PaymentManager#create_contact) order_number: your identifier to the order which the payment is for order_description: desription of the order which is show to the user order_items: items in order which are shown to the other (item name -> amount) amount: total amount of money which will be paid returl_url: url for rediraction after payment is processed currency: default is set in settings (GOPAY_CURRENCY) lang: default is set in settings (GOPAY_LANG) Returns: dict: payment status """

        return self.create_payment(contact, {
            'amount': amount,
            'currency': currency if currency is not None else settings.GOPAY_CURRENCY,
            'lang': lang if lang is not None else settings.GOPAY_LANG,
            'additional_params': [] if additional_params is None else [{'name': key, 'value': str(value)} for key, value in additional_params.items()],
            'order_number': str(order_number),
            'order_description': order_description,
            'items': [{'name': key, 'amount': value} for key, value in order_items.items()],
            'callback': {
                'return_url': return_url,
                'notification_url': '{}{}'.format(settings.GOPAY_DOMAIN, reverse('gopay_notify')),
            },
        })