

def purchase(self, amount, options=None):
    if (not key):
        options = {
            
        }
    tmp_options = options.copy()
    permissible_options = ['SenderTokenId', 'CallerReference', 'SenderDescription', 'CallerDescription', 'TransactionTimeoutInMinsTransactionAmount', 'OverrideIPNURL', 'DescriptorPolicy']
    tmp_options['TransactionAmount'] = amount
    if ('tokenID' in options):
        tmp_options['SenderTokenId'] = options['tokenID']
    if ('callerReference' in options):
        tmp_options['CallerReference'] = options['callerReference']
    for key in options:
        if (key not in permissible_options):
            tmp_options.pop(key)
    resp = self.fps_connection.pay(**tmp_options)
    return {
        'status': resp.PayResult.TransactionStatus,
        'response': resp.PayResult,
    }

dataset/ETHPy150Open agiliq/merchant/billing/integrations/amazon_fps_integration.py AmazonFpsIntegration.purchase/VarMisuse@19/21 `options`->`key`