'Make the NVP request and store the response.'

def _fetch(self, params, required, defaults):

    defaults.update(params)
    pp_params = self._check_and_update_params(required, defaults)
    pp_string = (self.signature + urlencode(pp_params))
    response = self._request(pp_string)
    response_params = self._parse_response(response)
    if settings.DEBUG:
        print 'PayPal    Request:'
        pprint.pprint(defaults)
        print '\nPayPal    Response:'
        pprint.pprint(response_params)
    nvp_params = {}
    for (k, v) in MergeDict(defaults, response_params).items():
        if (k in NVP_FIELDS):
            nvp_params[k] = v
    if ('timestamp' in nvp_params):
        nvp_params['timestamp'] = paypaltime2datetime(nvp_params['timestamp'])
    nvp_obj = PayPalNVP(**nvp_params)
    nvp_obj.init(self.request, params, response_params)
    nvp_obj.save()
    return nvp_obj
